java 通过 socket 实现 服务器和客户端的通信 TCP

简介:  // JBulder 9.0下执行 package me; import java.net.* ;   //网络编程有关的类在此包 import java.io.* ;  //用到 输入输出流 public class JavaNet {   public static void main(String []args)   {      if(args.
 // JBulder 9.0下执行

package me;
import java.net.* ;   //网络编程有关的类在此包
import java.io.* ;  //用到 输入输出流
public class JavaNet
{
  public static void main(String []args)
  {

     if(args.length>0)
       runServer() ;
       else
         runClient() ;

 

  }

  static public  void runServer()   //服务端
  {
    try
   {
     ServerSocket s1 = new ServerSocket(6666);
     while(true)
   {
     Socket ss=s1.accept() ;   //等待连接的到来
    InputStream in= ss.getInputStream() ;  //获得输入流
    OutputStream out=ss.getOutputStream() ;  //获得输出流
    out.write("hellow welcome".getBytes()) ;  //向输出流写入数据
    byte ch[] =new byte[100];
    int num=in.read(ch) ;
    System.out.println(new String(ch,0,num));
    in.close();
    out.close();
    ss.close();
   }


   }catch(Exception e)
   {
     e.printStackTrace();
   }
  }
 static  public void runClient()   //客户端
  {
       try{
         Socket ss=new Socket(InetAddress.getByName("127.0.0.1"),6666) ;   //getByname null返回本地IP   "LocalHost" 返回本地  IP也返回本地
         OutputStream out=ss.getOutputStream() ;  //获得输出流   向服务器写入数据
         out.write("I am  zhangsan ".getBytes());


       }
       catch (Exception e)
       {
         e.printStackTrace();
       }

 

 

  }

 

 

 


}

目录
相关文章
|
1月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
76 4
|
2月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
47 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
2月前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
34 1
|
2月前
|
网络协议 Linux 应用服务中间件
Socket通信之网络协议基本原理
【10月更文挑战第10天】网络协议定义了机器间通信的标准格式,确保信息准确无损地传输。主要分为两种模型:OSI七层模型与TCP/IP模型。
|
2月前
|
网络协议 安全 Java
Java Socket原理
Java Socket原理是指在Java中通过Socket实现的网络通信的基础理论与机制。Socket是网络中不同设备间通信的一种标准方式,它允许应用程序之间通过TCP/IP等协议进行数据交换。在Java中,利用Socket编程可以方便地创建客户端与服务器端应用,实现跨网络的数据传输功能,是互联网软件开发中的重要技术之一。它支持多种通信模式,如可靠的流式套接字(TCP)和数据报式套接字(UDP)。
62 10
|
2月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
76 1
|
存储 自然语言处理 Java
Elasticsearch: java客户端之AdminClient
Elasticsearch: java客户端之AdminClient
169 0
|
存储 自然语言处理 Java
Elasticsearch: java客户端之AdminClient
Elasticsearch: java客户端之AdminClient
262 0
|
5天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
7天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。

热门文章

最新文章