客户端:

package com.kuang.lesson02; 
 
import java.io.IOException; 
import java.io.OutputStream; 
import java.net.InetAddress; 
import java.net.Socket; 
 
//客户端 
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) { 
            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(); 
                } 
            } 
        } 
    } 
}

服务端:

package com.kuang.lesson02; 
 
 
import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.ServerSocket; 
import java.net.Socket; 
 
//服务端 
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); 
 
            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()); 
            } 
 
 
        } catch (Exception 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(); 
                } 
            } 
        } 
 
    } 
}

运行结果:

1、首先运行服务端,等待接收消息,可以发现服务端一直在运行

Java网络编程TCP怎么实现聊天功能

2、接着运行客户端,发送消息,可以发现客户端运行结束

Java网络编程TCP怎么实现聊天功能

3、返回服务端查看,可以发现服务端已经接收到了客户端发送来的消息

Java网络编程TCP怎么实现聊天功能

4、由于是循环操作,所以只要客户端发送消息来,服务端就能接收到,可以实现多次发送消息。


本文参考链接:https://www.yisu.com/zixun/582322.html
评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java如何实现鲜花商城系统