【发布时间】:2012-01-19 17:29:32
【问题描述】:
我正在为 tcp-ip 服务器客户端编写代码...我面临的问题是 :: 我的服务器在 Java 中并正在侦听一个端口,如果它找到任何东西,它就会打印它找到的东西。
我有一个 Java 客户端和一个 C 客户端。当我使用我的 Java 客户端并发送字符串“hello server”时 - 服务器发现并打印该字符串,但是当 C 客户端使用 winsock.h 的“发送”发送它时,Java 服务器在行 :: (I已使用 Buffereader 和 readline 从 Java 服务器中的 tcp-ip 端口获取数据)
commandFromPortal = inFromClient.readLine();
错误是::
Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at org.snmp4j.NOCAlarmManager.Clientnew.run
我该怎么办???有什么建议吗??
【问题讨论】:
-
在这种情况下提供更多关于 C 客户端的信息可能会有所帮助,至少打开套接字并发送数据。
-
发布相关代码可能会有所帮助。是缓冲问题吗?确保以换行符结束发送的字符串,然后尝试刷新。
-
从您的服务器发布套接字读取代码。
-
Java 以 UTF 而非 ascii 存储字符串。尝试在服务器上读取原始字节,或从 C 客户端发送 UTF 字符串。
-
@Kevin :: 我在从 C 客户端发送的 char 数组的末尾添加了一个换行符......它工作了......谢谢......但是不添加是否有可能字符串末尾的 \n ?我应该改变我的java服务器的bufferreader吗???