TCP实现聊天
客户端:
1.连接服务器 Socket
2.发送信息
//客户端
public class TcpClientDemo01 {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) {throw new RuntimeException(e);}finally {if (os != null){try {os.close();} catch (IOException e) {throw new RuntimeException(e);}}if (socket != null){try {socket.close();} catch (IOException e) {throw new RuntimeException(e);}}}}
}
服务端:
1.建立服务的端口 ServerSocket
2.等待用户的连接 accept
3.接收用户的信息
//服务端
public class TcpServerDemo01 {public static void main(String[] args) {ServerSocket serverSocket =null;Socket socket = null;InputStream is = null;ByteArrayOutputStream baos = null;try {//1.得有个地址serverSocket = new ServerSocket(9999);//2.等待客户端连接socket = serverSocket.accept();//3.读取客户端的消息is = socket.getInputStream();baos = new ByteArrayOutputStream();byte[] bytes = new byte[1024];int len;while ((len = is.read(bytes)) != -1){baos.write(bytes,0,len);}System.out.println(baos.toString());} catch (IOException e) {throw new RuntimeException(e);}finally {if (baos != null){try {baos.close();} catch (IOException e) {throw new RuntimeException(e);}}if (is != null){try {is.close();} catch (IOException e) {throw new RuntimeException(e);}}if (socket != null){try {socket.close();} catch (IOException e) {throw new RuntimeException(e);}}if (serverSocket != null) {try {serverSocket.close();} catch (IOException e) {throw new RuntimeException(e);}}}}
}