菜鸟教程 -- 学的不仅是技术,更是梦想!

Java 教程
(追記) (追記ここまで)

Java 实例 - ServerSocket 和 Socket 通信实例

Java 实例 Java 实例

以下实例演示了如何实现客户端发送消息到服务器,服务器接收到消息并读取输出,然后写出到客户端客户端接收到输出。

1、建立服务器端

  • 服务器建立通信ServerSocket
  • 服务器建立Socket接收客户端连接
  • 建立IO输入流读取客户端发送的数据
  • 建立IO输出流向客户端发送数据消息

服务器端代码:

Server.java 文件

importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.IOException; importjava.io.InputStreamReader; importjava.io.OutputStreamWriter; importjava.net.ServerSocket; importjava.net.Socket; publicclassServer{publicstaticvoidmain(String[]args){try{ServerSocketss = newServerSocket(8888); System.out.println("启动服务器...."); Sockets = ss.accept(); System.out.println("客户端:"+s.getInetAddress().getLocalHost()+"已连接到服务器"); BufferedReaderbr = newBufferedReader(newInputStreamReader(s.getInputStream())); //读取客户端发送来的消息Stringmess = br.readLine(); System.out.println("客户端:"+mess); BufferedWriterbw = newBufferedWriter(newOutputStreamWriter(s.getOutputStream())); bw.write(mess+"\n"); bw.flush(); }catch(IOExceptione){e.printStackTrace(); }}}

以上代码运行输出结果为:

启动服务器....

2、建立客户端

  • 创建Socket通信,设置通信服务器的IP和Port
  • 建立IO输出流向服务器发送数据消息
  • 建立IO输入流读取服务器发送来的数据消息

客户端代码:

Client.java 文件

importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.OutputStream; importjava.io.OutputStreamWriter; importjava.net.Socket; importjava.net.UnknownHostException; publicclassClient{publicstaticvoidmain(String[]args){try{Sockets = newSocket("127.0.0.1",8888); //构建IOInputStreamis = s.getInputStream(); OutputStreamos = s.getOutputStream(); BufferedWriterbw = newBufferedWriter(newOutputStreamWriter(os)); //向服务器端发送一条消息bw.write("测试客户端和服务器通信,服务器接收到消息返回到客户端\n"); bw.flush(); //读取服务器返回的消息BufferedReaderbr = newBufferedReader(newInputStreamReader(is)); Stringmess = br.readLine(); System.out.println("服务器:"+mess); }catch(UnknownHostExceptione){e.printStackTrace(); }catch(IOExceptione){e.printStackTrace(); }}}

以上代码运行输出结果为:

服务器:测试客户端和服务器通信,服务器接收到消息返回到客户端

Java 实例 Java 实例

AI 思考中...

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /