java中的一个Socket能不能发送多条数据?

夜色无边 发布于 2013/08/02 17:47
阅读 3K+
收藏 0
就是客户端一个Socket反复的发送数据,服务器端反复读取而不跟换Socket,可以不?

求解........

加载中
0
找到组织
找到组织
做成是长连接即可,这个很容易实现
夜色无边
夜色无边
额,长连接是怎么实现的?谢了。。
0
找到组织
找到组织

我之前做银行的时候好多都是这个玩意,你给做一个标志知道flag的时候才停止,接受或者发送,发送一般不需要太多处理,因为满了最多65536就行了发送,等今天晚上回去再说吧,下班啦,哈哈哈哈

0
純白陰影
純白陰影
Socket连接不关闭就可以了
夜色无边
夜色无边
服务端怎么才能反复的接受呢?
夜色无边
夜色无边
恩恩
0
CCNU
CCNU

while(true){

do something with socket.getInputStream()

}

CCNU
CCNU
回复 @夜色无边 : 规范的方式是,客户端要断开之前,给服务器发送一个信息,说我要断开了,你可以把我的socket给kill掉了,但存异常状况下的断开。这就要用到心跳包了,客户端按一定时间对服务端发送心跳数据(可以为空)。服务器按指定间隔来扫描,如果一定时间内没有收到客户端的心跳数据,那就判断客户端已经断开了,就主动关闭掉对应的socket连接
夜色无边
夜色无边
回复 @我爱锅 : 解决了,还有就是怎么知道客户端关闭了连接呢
夜色无边
夜色无边
额,没有阻塞啊,直接读取下一条,读空了(null)
CCNU
CCNU
回复 @夜色无边 : boolean flag=true; while(flag){ socket.getInputStream();//程序会停在这等待有数据进入 //处理信息bala bala }
CCNU
CCNU
回复 @夜色无边 : socket.getInputStream()是阻塞的,监听到有数据流进来了才会放开,读完后,while(true)继续来个getInputStream()就再次处于等待流的状态
下一页
0
徐迎龙
徐迎龙
封装成DataOutputStream DataInputStream 挺好用,可以写UTF和Object
0
酷酷的就
酷酷的就
就是普通的socket 不关闭,期间发送多次数据,服务器是阻塞的,没问题的.
夜色无边
夜色无边
客户端要怎么多次发送呢?
0
酷酷的就
酷酷的就

引用来自“zp-wmhx”的答案

就是普通的socket 不关闭,期间发送多次数据,服务器是阻塞的,没问题的.
你该先去看看socket的过程, 就是 正常怎么发就怎么发, 期间不需要连接和关闭.
0
水牛叔叔
水牛叔叔
把socket用个容器管理起来,别把socket关了(除非socket无效或过期了),要用的时候就从容器里把socket拿出来挨个发。如果你还需要监听socket的数据,必须为每个socket起一个线程才能监听,因为socket是阻塞的。当阻塞在一个socket上监听时,其他socket就来不及照顾了。不想用线程的话,可以考虑java nio(非阻塞)
0
夜色无边
夜色无边

引用来自“我爱锅”的答案

while(true){

do something with socket.getInputStream()

}

socket.getInputStream()是阻塞的,监听到有数据流进来了才会放开,读完后,while(true)继续来个getInputStream()就再次处于等待流的状态  
返回顶部
顶部