java socket 多线程客户端_socket java实现客户端多线程接受消息并发送消息给服务器,并发执行...

给你个思路,Server里面有所有登陆进来的客户端列表,List list;

服务器启动后,开个线程.

new Thread(){

@Override

public void run(){

while(true){

// 遍历list,给每一个Client发送1500条信息

// 伪代码

for(Client client:list){

new Socket(client.ip,客户端提供的接收消息端口号).getOutputStream().write("消息");

}

}

}

}.start();

客户端启动后:执行以下代码

Socket socket=new Socket(提供接受消息服务的端口);//监听服务器发过来的消息

while(true){

final Socket mySocket = socket.accept();

//如果是要在接收的同时去验证链接是否正常,(即没接收消息则不验证?),那用一个对象,里面有个值可代表是否接受完 如A有个boolean 字段receiving,

//对这次通讯生成一个判断结束的对象

final A a=new A();

a.receiving=true;

new Thread() {

@Override

public void run() {

mySocket.getInputStream().read(byte[]); //取消息

//当取完信息后,改变receiving的值为false

a.receiving=false;

}

}.start();

// 再开一线程,做为验证链接正常的功能

new Thread(){

public void run(){

while(a.receiving){ //当本次信息未接收完时执行

// 跟服务器通讯,确定链接正常

new Socket(Server.ip,对应端口号);

Thread.sleep(25000);//休眠25秒

}

}

}.start();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值