永发信息网

java中客户端用socket连接上服务端之后一直没有断开,不定时给服务端发送数据,服务器端如何知道?

答案:3  悬赏:0  手机版
解决时间 2021-11-28 16:05
java中客户端用socket连接上服务端之后一直没有断开,不定时给服务端发送数据,服务器端如何知道?
最佳答案
public void start() throws IOException{
ServerSocket ss = new ServerSocket(9000);
while(true){
Socket s = ss.accept();
}
}

要用到线程的东西追问我服务器端就是这么写的,现在客户端一直连着我的服务器,并且不定时给服务器发送数据,但是我服务器如何能知道他又给我发送数据了呢?用socket只有在客户端刚访问服务器端的时候能监听到,之后就监听不到了追答public void start() throws IOException{
ServerSocket ss = new ServerSocket(9000);
while(true){
Socket s = ss.accept();
new Agent(s).start();
}
}
class Agent extends Thread{
Socket s;
public Agent(Socket s) {
this.s = s;
}
public void run() {
try{
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
//向客户端发送, 先发生协议返回行,文本行
IOUtils.println(out, "text,1");//协议头
//发送消息内容, 一行文本消息
IOUtils.println(out, "欢迎使用FTP演示服务器!");
while(true){
//读取客户端发送到命令
String cmd = IOUtils.readLine(in).trim();
if("pwd".equals(cmd)){//显示当前目录
pwd(out);
}else if("ls".equals(cmd)){
ls(out);
}else if(cmd.startsWith("get ")){
get(cmd, out);
}else if("bye".equalsIgnoreCase(cmd)){
IOUtils.println(out, "text,1");
IOUtils.println(out, "Bye, Bye!");
s.close();
}else{
IOUtils.println(out, "text,1");
IOUtils.println(out, "只支持pwd,ls,get,bye!");
}
}
}catch(IOException e){
e.printStackTrace();
}
}
}
全部回答
单独的读线程,有数据即时读出来
如果是一对一的话,不要用到线程,相当于一个1对1的聊天。主要是这,你看下

try{t.setText("服务端开启,等待客户端连接");
ss=new ServerSocket(50000);

}catch(IOException e){
System.err.println("无法在50000端口建立监听服务");
System.exit(1);
}

try{ s=ss.accept();
fstart=true;
t.append("\n和来自"+s.getInetAddress()+"客户端连接成功!\n");
t.append("\n你现在可以通信了");
dis=new DataInputStream(s.getInputStream());
kehu[1]=dis.readUTF();
}catch(IOException e){
System.err.println("和客户端建立服务失败");
System.exit(1);
}

try{

while(true){
dis=new DataInputStream(s.getInputStream());
dos=new DataOutputStream(s.getOutputStream());
t.append("\n客户端1:"+dis.readUTF());

}

}catch(IOException e){

}

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
吸烟有害健康,青少年更不应该吸烟,右图为香
上海4家斯巴鲁4S店保养服务,哪家好一些
凯宏商务宾馆石板镇店地址在哪,我要去那里办
直径2.8厘米长度1米6的铝棒有多重?
氢分子是由氢原子构成的,那为什么氢气的构成
装配图中防滑结构?
x,y在数轴上的位置如图1-1所示,试化简:|x-y+1
大家一般出差多久啊!
我们竭尽所能满足客户要求翻译
我有一个核桃的商标,不知道在商标分类中应该
哪部电影的主题曲是《再见青春》这首歌
新捷达轮毂孔距是不是5*100?
亲戚上的出五福是什么意思
看了这款国产超豪华SUV,感觉什么宝马都弱爆
购房合同买方想单方违约,需要赔付多少违约金
推荐资讯
挖矿是什麼?为什么只能A卡挖矿?
当你删除一个你喜欢的人时,你是什么感受?
哪儿有简快的心理学考研课程。
深圳龙岗到机场最快的方式!
杨槐树花功能和食用
猪骨和白萝卜和玉米一起煲汤有什么作用?
我的联通号码流量限速上网速度降至7.2Mbps
狗本来快到我跟前了,我都准备摸它了,结果狗
近年来,汽车大量进入普通居民家庭,成为居民
算命时,有什么经典的词,例如:印堂发黑
如果我建一个微电台有人定可以赚钱吗
微山县烟草专卖局专卖管理所在哪里啊,我有事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?