java socket 一对多_java中socket通信(一对多)

该博客展示了如何使用Java的Socket编程创建一个简单的多线程服务器,能够同时处理多个客户端的连接请求。在服务器端,通过ServerSocket监听特定端口,并在接收到客户端连接时启动新的线程来处理通信。客户端则通过Socket连接服务器,发送和接收数据。示例代码包括了读取客户端输入并回显信息,直到接收到'end'信号结束通信。

【server端】

import java.io.*;

import java.net.*;

public class MultiSocketServer

{

public static void main(String str[]) throws IOException

{

ServerSocket server=new ServerSocket(3333);//绑定端口

while(true)

{

Socket client=server.accept();//监听

ChildTh child=new ChildTh(client);

Thread t=new Thread(child);

t.start();

}

}

}

class ChildTh implements Runnable

{

private Socket client;

public ChildTh(Socket client)

{

this.client=client;

}

public void run() {

try

{

BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));

PrintWriter out=new PrintWriter(client.getOutputStream());

while(true)

{

String s=in.readLine();

System.out.println(s);

out.println("has received……");

out.flush();

if(s.equals("end"))

break;

}

client.close();

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

【client端】

import java.net.*;

import java.io.*;

public class MultiSocketClient

{

static Socket server;

public static void main(String str[]) throws  IOException

{

server=new Socket("222.195.151.47",3333);

BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));

PrintWriter out=new PrintWriter(server.getOutputStream());

BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));

while(true)

{

String s=wt.readLine();

out.println(s);

out.flush();

if(s.equals("end"))

{

break;

}

System.out.println(in.readLine());

}

server.close();

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-12-09 15:09

浏览 1324

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值