当前位置:首页>java>Java之网络编程-聊天室

Java之网络编程-聊天室

  • 2026-08-26 17:40:20
Java之网络编程-聊天室
服务端代码
package lesson01;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;//TCP服务端publicclassTcpServerDemo01 {publicstaticvoidmain(String[] args) {ServerSocketserverSocket=null;Socketsocket=null;InputStreamis=null;ByteArrayOutputStreambaos=null;try {//1、我得要一个地址            serverSocket = newServerSocket(9999);while (true) {//2、等待客户端连接过来                socket = serverSocket.accept();//3、读取客户端的消息                is = socket.getInputStream();//管道流                baos = newByteArrayOutputStream();byte[] buffer = newbyte[1024];int len;while ((len = is.read(buffer)) != -1) {                    baos.write(buffer,0,len);                }                System.out.println(baos.toString());            }        }catch (IOException e){            e.printStackTrace();        }finally{//关闭资源if(socket!=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、先运行服务端程序
客户端代码
package lesson01;import java.io.IOException;import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;//TCP客户端public class TcpClientDemo01 {    public static void main(String[] args) {        Socket socket = null;        OutputStream os = null;        Scanner scanner = null;        try{            //1、要知道服务器的地址,端口号            InetAddress serverIP = InetAddress.getByName("127.0.0.1");            int port = 9999;            //2.创建一个socket连接            System.out.println("正在连接服务器 " + serverIP.getHostAddress() + ":" + port+ "...");            socket = new Socket(serverIP,port);            //3.发送消息 IO流            os = socket.getOutputStream();//            os.write("你好....".getBytes());            scanner = new Scanner(System.in);            System.out.println("已连接服务器!请输入消息(输入 'exit' 退出):");            //2.循环读取用户输入并发送            while (true){                System.out.println(">>> ");                String input = scanner.nextLine();                //推出条件                if ("exit".equalsIgnoreCase(input)||"quit".equalsIgnoreCase(input)){                    System.out.println("正在断开连接...");                    break;                }                //发送消息(带换行符,方便服务器按行读取)                os.write((input + "\n").getBytes("UTF-8"));                os.flush();            }        } 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();                }            }        }    }}
2、在运行客户端

最新文章

随机文章