/BIO进行多用户连接
class Test implements Runnable {
Socket socket = new Socket();
public Test(Socket s) {
this.socket = s;
}
@Override
public void run() {
//进行读写操作
BufferedReader reader = null;
OutputStream writer = null;
try {
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = socket.getOutputStream();
String msg = null;
while ((msg = reader.readLine()) != null) {
System.out.println("客户端:" + socket.getRemoteSocketAddress() + "发送数据" + msg);
//回复客户端消息
writer.write((msg + "\n").getBytes());
if (" ".equals(msg) || "exit".equals(msg)) break;
}
} catch (IOException e1) {
e1.printStackTrace();
}
//关闭资源
try {
writer.close();
reader.close();
socket.close();
System.out.println("服务端结束");
} catch (IOException e1) {
e1.printStackTrace();
}
finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
public class BIOServer {
public static void main(String[] args) {
ServerSocket socket=null;
try {
socket=new ServerSocket();
//绑定端口
socket.bind(new InetSocketAddress(999));
System.out.println("服务器已经启动");
while(true){
//进行监听,等待连接
Socket socket1 = socket.accept();
System.out.println("客户端:"+socket1.getRemoteSocketAddress()+"连接");
new Thread(new Test(socket1)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
if(socket!=null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
BIO实现多用户连接
最新推荐文章于 2023-09-13 13:13:34 发布