Java小项目---客户端与服务器端聊天

使用 Java 实现一个简单的聊天程序, 实现服务器端接收到客户端发来的消息, 使用了java.net.socket包. 通过socket 实现 client — server 之间的通讯.
socket详解
环境要求:
1. windows启用telnet功能.
2. Eclipse安装必要组件
这里写图片描述

代码如下:


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
 * @author yancykahn
 * @vision 2.0
 */
public class Server {
    private ServerSocket serverSocket;

    // 端口号为port 的构造函数
    public Server(int port) {
        try {
            serverSocket = new ServerSocket(port);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void start() {
        try {
            System.out.println("wait server connect ...");
            //让服务器进入等待状态, 阻塞.
            Socket socket = serverSocket.accept();
            System.out.println("server connected.");

            InputStream is = socket.getInputStream();
            OutputStream os = socket.getOutputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            String data = br.readLine().toString();
            String name = socket.getInetAddress().getCanonicalHostName();
            while(!data.equals("exit")) {
                String temp = name + " : " + data + "\r\n";
                System.out.println(temp);
                os.write(temp.getBytes());
                os.flush();
                data = br.readLine().toString();
            }
            os.write("bye!\n".getBytes());
            os.flush();
            socket.close();
        }catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Server server = new Server(8888);
        server.start();
    }
}

效果图:
1. telnet远程连接
telnet远程连接
2.连接成功
客户端
服务器端
3.退出
exit

猜你喜欢

转载自blog.csdn.net/qq_37753409/article/details/79762643