java socket调试_JAVA实现SOCKET多客户端通信的案例

一、ServerSocket

1.为了方便调试,先创建一个界面用于显示客户端连接信息

cf4ecb60aa85ada2860d7f615e65dba9.png

基于javafx包写的一个简单界面!

javafx.scene.control.TextArea ta = new javafx.scene.control.TextArea();

@Override

public void start(Stage primaryStage) throws Exception {

scene = new Scene(ta,450,200);

primaryStage.setTitle("SocketServer");

primaryStage.setScene(scene);

primaryStage.show();

pStage = primaryStage;

new Thread(new MyServer()).start(); //创建线程启动Socket服务

}

2.启动Socket服务

public class MyServer implements Runnable{

@Override

public void run() {

try{

java.net.ServerSocket serverSocket = new java.net.ServerSocket(8000);

ta.appendText("Server started at " + new Date()+"\n");

while(true){

Socket socket = serverSocket.accept(); //程序会在这里阻塞,直到等到客户端连接

clientNumber++;

/*

这里就是在界面中输出一些服务器、和连接的客户端信息

*/

Platform.runLater(()->{

ta.appendText("Starting thread for client " + clientNumber + " at " +

new Date() +"\n");

InetAddress inetAddress = socket.getInetAddress();

ta.appendText("Client "+clientNumber + "'s host name is" +inetAddress.getHostName()

+"\n");

ta.appendText("Client"+clientNumber + "'s IP address is "+ inetAddress.getHostAddress()+"\n");

});

/*

每有一个客户端连接服务器就创建一个线程,进行通信处理

*/

new Thread(new HandleServer(socket)).start();

try{

Thread.sleep(100); //多个客户端连续快速连接服务器时,可能出现问题,这里设置延时

}catch (InterruptedException e){ </

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值