Java Socket客服端第二次传送信息时服务端收不到消息怎么解决
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要讲解了"Java Socket客服端第二次传送信息时服务端收不到消息怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java Soc
千家信息网最后更新 2024年11月23日Java Socket客服端第二次传送信息时服务端收不到消息怎么解决
这篇文章主要讲解了"Java Socket客服端第二次传送信息时服务端收不到消息怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java Socket客服端第二次传送信息时服务端收不到消息怎么解决"吧!
小问题一:
在客户端使用如下代码时候,服务端接收不到客户端信息。
PrintWriter pw = new PrintWriter(new BufferedOutputStream(os));pw.print("this is a clent:"+i);pw.flush();
此时,我把代码改成如下,服务端可以看到客户端发送的信息。
os = socket.getOutputStream();PrintWriter pw = new PrintWriter(new BufferedOutputStream(os));pw.print("this is a clent:"+i+"\n");// 或者换成 pw.println("this is a clent:"+i);pw.flush();
这两段代码的区别是,一个代码没有加换行符,而另一个代码加了换行符。
小问题二:
在服务端开启后,客户端执行完创建Socket代码之后,将不会在进行代码的连接检查,这样带来了一个后果,当代码执行如下代码之后,关闭服务端的连接,并不能出现Connection refused (Connection refused)提示。
socket = new Socket("127.0.0.1", 10000);
下面贴出完整代码:
客户端:
public static void main(String[] args) { Socket socket = null; OutputStream os = null; try {int i=0; socket = new Socket("127.0.0.1", 10000); while (true) { i++; os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(new BufferedOutputStream(os)); Thread.sleep(1000L); pw.print("this is a clent:"+i+"\n"); pw.flush(); //接收服务器传输过来的信息 InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(is))); System.out.println("服务器传输信息:"/* + br.readLine()*/+ ";服务器信息:" + socket.getInetAddress().getHostName()); } } catch (IOException | InterruptedException e) { e.printStackTrace(); } finally {try { os.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }}
服务端:
public static void main(String[] args) {try { ServerSocket serverSocket = new ServerSocket(10000); Socket socket = null; InputStream inputStream = null; while (true) { socket = serverSocket.accept(); inputStream = socket.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); System.out.println("服务端收到客户端消息:" + bufferedReader.readLine() + ";客户端信息" + socket.getInetAddress().getHostAddress() + ":" + socket.getPort()); //反馈消息 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(os))); pw.println("收到客户端传输数据,服务器信息" + socket.getLocalSocketAddress().toString()); pw.flush(); } } catch (IOException e) { e.printStackTrace(); }}
感谢各位的阅读,以上就是"Java Socket客服端第二次传送信息时服务端收不到消息怎么解决"的内容了,经过本文的学习后,相信大家对Java Socket客服端第二次传送信息时服务端收不到消息怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
服务
信息
代码
客户
客户端
消息
服务器
问题
传输
学习
内容
换行符
后果
就是
思路
情况
数据
文章
时候
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全宣传主题党日活动
网络安全与信息化特征
车载电脑网络安全吗
旅游软件开发设计原则
福州果蔬软件开发哪家专业
交警检查网络安全
同一期刊是否会被不同数据库收录
网络技术的最好方法
数据库技术运用
网络安全相关设备厂商型号
方舟自己建服务器管理密码
csgo安全服务器封禁
ensp如何ping通服务器
软件开发部署有哪些测试方法
数据库题咋做
广东省网络安全宣传片视频
阿里云服务器与数据安全
重庆交友软件开发定做
mysql数据库多大空间
对软件开发的看法未来
钦州共享设备软件开发
cdn服务器使用数据库语言
日租卡服务器免流
贵阳花溪软件开发
计算机网络技术叫专科吗
服务器如何做集群
网络安全个人自媒体
新建数据库怎么添加日志
汉中新华互联网科技学校
福州软件开发助理招聘广告