Ai
1 Star 0 Fork 0

晓林/LearnJavaSE

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
TCPDemo1Server.java 1.88 KB
一键复制 编辑 原始数据 按行查看 历史
晓林 提交于 2023-04-15 20:31 +08:00 . 网络编程的Demo
package chapter20;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
public class TCPDemo1Server {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(7777);
System.out.println("server is running....");
while (true){
Socket sock = ss.accept();
System.out.println("connected from " + sock.getRemoteSocketAddress());
Thread t = new Handler(sock);
t.start();
}
}
}
class Handler extends Thread{
Socket sock;
public Handler(Socket sock){
this.sock = sock;
}
@Override
public void run() {
try(InputStream input = this.sock.getInputStream();
OutputStream output = this.sock.getOutputStream()){
handle(input, output);
}catch (Exception e){
System.out.println("Client disconnected: ");
e.printStackTrace();
try{
this.sock.close();
}catch (Exception e2){
System.out.println("sock close error: ");
e2.printStackTrace();
}
}
}
private void handle(InputStream input, OutputStream output) throws IOException{
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8));
BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));
writer.write("hello!\n");
writer.flush();
while (true){
String s = reader.readLine();
if(s.equals("bye, server")){
writer.write("bye, client!");
writer.flush();
break;
}
writer.write("server successfully receive message \" " + s + " \" from client. \n");
writer.flush();
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/peterjxl/LearnJavaSE.git
git@gitee.com:peterjxl/LearnJavaSE.git
peterjxl
LearnJavaSE
LearnJavaSE
master

搜索帮助