现在我用Client端和Server端建立一个Socket连接,我想实现如下几个功能:
1、如果Client端主动socket.close(),Server端如何判断Client端socket已经close()?Server端如何做出处理,且要继续监听,而不是因此而抛出异常。
2、如果Server端发现Client端是非法的(用户名错了,或登录IP有误),Server端如何把Client端的连接关闭,即踢出,而又继续保持监听?
谢谢!
1、如果Client端主动socket.close(),Server端如何判断Client端socket已经close()?Server端如何做出处理,且要继续监听,而不是因此而抛出异常。
2、如果Server端发现Client端是非法的(用户名错了,或登录IP有误),Server端如何把Client端的连接关闭,即踢出,而又继续保持监听?
谢谢!
第一,可以事先判断isClosed()
第二,即使抛出异常,你仍然可以继续监听。把try放在循环之中即可。2)
socket.close()应该就可以吧?
1、当client登陆,验证是否合法,如果非法,返回一条信息,让client关闭socket。
2、当client主动退出,可以向服务器发送一条退出信息,服务器先返回一条信息,让client关闭socket,同时停止socket.getInputStream.read方法。可以把read放在一个while方法,然后弄一个标志位
"jsjboss(沉珂)"的做法我有点意见,如果CLIENT不是我们写的呢,它怎能根据SERVER的指令去执行呢,当然CLIENT退出时就更不会想服务端发一条指令了!谢谢
Hima