使用 Socket 和 ServerSocket 实现简单的聊天程序
用java.net.Socket
和java.net.ServerSocket
实现简单的聊天程序
思路是这样的:
假设用户A与用户B进行聊天,用户B端使用ServerSocket作为服务端,而用户A使用Socket与用户B进行通信。
- 这两个小程序需要运行在同一台电脑上,才能正常通信。
- 运行时一定要先运行
Server.class
再运行Client.class
。 - 通过异常来控制程序逻辑不是首选方式,但想了很久也没想出其它方法
>.<
用户A的代码如下(Client.java
)
|
|
用户B代码(服务端)(Server.java
)
|
|
编译运行
分别编译Server.java,Client.java文件
12javac Server.javajavac Client.java先后运行Server.class和Client.class
12java Serverjava Client此时可看到:
- 接下来进行简单对话后在服务端输入
quit
可看到: - 此时客户端已经关闭,而服务端会循环阻塞在accept方法上。此时只需再次运行Client.class(在dos终端切换到Client.class文件所在路径后输入
java Client
)就能再次连接到服务端 - 服务端主动结束会话,此时时这样的: