Java Socket客服端第二次传送信息时服务端收不到消息怎么解决
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章主要讲解了"Java Socket客服端第二次传送信息时服务端收不到消息怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java Soc
千家信息网最后更新 2025年02月07日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安全错误
数据库的锁怎样保障安全
上海浩恒网络技术有限公司
网络技术大学就业
pgp计算机网络安全论文
软件开发中的方法论
putty保存数据库
广青科技互联网采购
网络安全审查涉及哪种运营商
串行控制台服务器发展趋势
nas文件存在数据库
珠海考试软件开发设计
网络服务器配置与管理笔记
论坛设计的数据库
宁波网络安全准入控制哪家好
时时网络技术有限公司看准网
软件开发项目发票一般怎么开
网络安全工控机提供商
泰州手机软件开发创新服务
高并发 服务器配置
马鞍山设备保养管理软件开发平台
传统的软件开发方法的求解过程
蒲城网络安全宣传
小型服务器一个月多少钱
怎么登录wf服务器
联通网络安全题目
汽车服务软件开发
为学校制作一个 数据库
服务器如何做分区
抖音福袋软件开发
汇丰软件开发工资多少
西城区信息网络技术推广品质保障