永发信息网

java socket中server端和client端通信,client端一直等待接收信息,请问重新主动向client端发送数据?

答案:3  悬赏:10  手机版
解决时间 2021-02-15 14:30
  • 提问者网友:最美的风景
  • 2021-02-14 14:03
java socket中server端和client端通信,server端一直监听端口,client端向server端发送数据后,server端接收到并返回数据给client端,client端一直等待接收数据。请问能不能重新建立之前server端和client通信的Socket,主动向client端发送数据?如果可以,请问重新主动向client端发送数据时如何获取之前建立通信的Socket呢?
我把Socket定义在成类属性static Socket socket; server端和client端通信后,想主动再向client端发送数据,于是我获取这个定义在成类属性static Socket socket,结果为null。

我知道做了,通过将设置server端和client端连接的Socket定义在外面:static Socket socket;然后后面发送就可以获取这个socket了,需要通过web页面执行,用main方法调试是获取socket值的。
最佳答案
  • 五星知识达人网友:胯下狙击手
  • 2021-02-14 14:43
就算你是在server端,也能够向client端发送数据啊。。
只要client-server直接的socket仍然存在,那么c/s之间就能够任意的发送/接收字节流。
socket.getInputStream()--得到输入的字节流
socket.getOutputStream()--得到输出的字节流
有什么地方不明白的么??之后c/s直接的数据通信,就直接用字节流操作即可(几乎跟用字节流读写文件一样的)
全部回答
  • 1楼网友:旧脸谱
  • 2021-02-14 16:02
只要连接还存在,就可以随便输出呀。
  • 2楼网友:忘川信使
  • 2021-02-14 15:28
你的问题确实有点奇怪,socket是不用在固定服务器与客户端之间多建的,socket建好后你可以在客户端和服务器中各自对输入流进行循环判断,如果你socket输入流来源不为空(比如说来源可能是键盘输入文件读取等),就把这些东西负给socket的输入流,这个连接就随便通信,谁主动谁被动都不是重点,多少次也随意
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯