使用ServerSocket类实现服务器
下面的代码使用了ServerSocket类建立一个套接字
1 | ServerSocket s = new ServerSocket(8189); |
每一个服务器程序,都不间断的执行下面这个循环操作
- 通过输入数据流从客户端接收一个命令
- 解码这个命令
- 收集客户端所请求的信息
- 通过输出数据流发送信息给客户端
示例代码如下
1 | import java.io.*; |
为多个客户端服务
为了实现同时为多个客户端服务,服务器应该有类似以下代码的循环操作
1 | while(true){ |
ThreadedEchoHander类实现了Runnable接口,而且在它的run方法中包含了与客户端循环通信的代码。
1 | class ThreadedEchoHandler implements Runnable{ |
每一个连接都会启动一个新的线程,因而多个客户端就可以同时连接到服务器了。
示例程序如下:
1 | import java.io.*; |
半关闭
半关闭:套接字连接的一端可以终止其输出,同时仍旧可以接受来自另一端的数据。
可以通过关闭一个套接字的输出流来表示发送给服务器的请求数据已经结束,但是必须保持输入流处于打开状态。
1 | Socket socket=new Socket(host,port); |