TCP 实现聊天
客户端
- 1.客户端得知道服务端地址
- 2.得知道服务端的端口号
- 3.通过Socket与服务端建立连接
- 4.通过输出流的方法发送信息
客户端代码如下:
package com.example.code.netWork;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
/**
 * @author joy
 * @version 1.0
 * @date 2020/8/31 19:46
 */
public class SocketClientDemo {
    public static void main(String[] args) throws IOException {
        OutputStream out = null;
        Socket socket = null;
        //1.创建ip
        try {
            //得知服务端地址
            InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
            //服务端端口号
            int port = 9999;
            //通过socket建立连接
            socket = new Socket(inetAddress,port);
            out = socket.getOutputStream();
            out.write("我是消息".getBytes());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            out.close();
            socket.close();
        }
    }
}
服务端
- 服务端得设置端口号
- 通过socket与客户端建立连接
- 通过输入流得到客户端发送的输入流
- 通过将输入流写入字节数组输出流来打印信息
服务端代码如下:
package com.example.code.netWork;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * @author joy
 * @version 1.0
 * @date 2020/8/31 19:45
 */
public class socketServerDemo {
    public static void main(String[] args) throws IOException {
        Socket accept =  null;
        ByteArrayOutputStream out = null;
        InputStream inputStream = null;
        try {
            ServerSocket serverSocket = new ServerSocket(9999);
           while (true){
               accept = serverSocket.accept();
               inputStream = accept.getInputStream();
               out = new ByteArrayOutputStream();
               byte[] buffer = new byte[1024];
               int len;
               while ((len = inputStream.read(buffer)) != -1){
                   out.write(buffer,0,len);
               }
               System.out.println(out.toString());
           }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            out.close();
            inputStream.close();
            accept.close();
        }
    }
}
          本文由
          没有翅膀却想飞上天空
          原创发布于
          阳光沙滩
          ,未经作者授权,禁止转载
        
 





























