2020年11月18日星期三

网络编程之 TCP 实现简单聊天

网络编程之 TCP 实现简单聊天

客户端

 

1、连接服务器 Socket

2、发送消息

package lesson02;import java.io.IOException;import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;/** * 客户端 */public class TcpClientDemo1 { public static void main(String[] args) {  Socket socket = null;  OutputStream os = null;  try {   //1、要知道服务器的地址 端口号   InetAddress serverIP = InetAddress.getByName("127.0.0.1");   int port = 9999;   //2、创建一个 socket 连接   socket = new Socket(serverIP, port);   //3、发送消息 IO流   os = socket.getOutputStream();   os.write("你好,欢迎学习狂神学Java".getBytes());  } catch (Exception e) {   e.printStackTrace();  } finally {   if (os != null){    try {     os.close();    } catch (IOException e) {     e.printStackTrace();    }   }   if (socket != null){    try {     socket.close();    } catch (IOException e) {     e.printStackTrace();    }   }  } }}
 

服务端

 

1、建立服务的端口 ServerSocket

2、等待用户的连接 accept

3、接收用户的消息

package lesson02;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;/** * 服务端 */public class TcpServerDemo1 { public static void main(String[] args) {  ServerSocket serverSocket = null;  Socket socket = null;  InputStream is = null;  ByteArrayOutputStream baos = null;  try {   //1、我得有一个地址   serverSocket = new ServerSocket(9999);   while (true){    //2、等待客户端连接过来    socket = serverSocket.accept();    //3、读取客户端的消息    is = socket.getInputStream();    //管道流    baos = new ByteArrayOutputStream();    byte[] buffer = new byte[1024];    int len;    while((len = is.read(buffer)) != -1){     baos.write(buffer, 0 , len);    }    System.out.println(baos.toString());   }   /*   byte[] buffer = new byte[1024];   int len;   while ((len = is.read(buffer)) != -1){    String msg = new String(buffer, 0, len);    System.out.println(msg);   }   */  } catch (IOException e) {   e.printStackTrace();  } finally {   //关闭资源   if (baos != null){    try {     baos.close();    } catch (IOException e) {     e.printStackTrace();    }   }   if (is != null){    try {     is.close();    } catch (IOException e) {     e.printStackTrace();    }   }   if (socket != null){    try {     socket.close();    } catch (IOException e) {     e.printStackTrace();    }   }   if (serverSocket != null){    try {     serverSocket.close();    } catch (IOException e) {     e.printStackTrace();    }   }  } }}
 

原文转载:http://www.shaoqun.com/a/490424.html

大森林:https://www.ikjzd.com/w/2268

csa认证:https://www.ikjzd.com/w/904

声网agora:https://www.ikjzd.com/w/2176


网络编程之TCP实现简单聊天客户端1、连接服务器Socket2、发送消息packagelesson02;importjava.io.IOException;importjava.io.OutputStream;importjava.net.InetAddress;importjava.net.Socket;/***客户端*/publicclassTcpClientDemo1{publicstati
飞书互动:飞书互动
打折网站:打折网站
旅游要多少人才能申请独立成团?:旅游要多少人才能申请独立成团?
魔鬼身材利器:咖啡 - :魔鬼身材利器:咖啡 -
纽约时报解读亚马逊为何放弃纽约建总部:不懂政治 脸皮太薄:纽约时报解读亚马逊为何放弃纽约建总部:不懂政治 脸皮太薄

没有评论:

发表评论