我用Java创建了一个客户端,我只想将一些数据发送到我在C#中的服务器.
问题是如果我在客户端写例如你好,我只得到第一个字母.在字节数组中只有一个元素.
我猜服务器端存在一些问题,因为在我的JAVA服务器中工作正常,所以JAVA中的客户端工作正常.
有人看到有什么问题吗?
先感谢您.
问题可能出在java端,因为你的监听器工作正常。我将您的侦听器代码复制粘贴到测试应用程序中。然后我创建了另一个测试应用程序并发送了问候语,我完全听了它。
public static void sender()
{
TcpClient client = new TcpClient();
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("192.168.2.236"), 30000);
client.Connect(serverEndPoint);
NetworkStream clientStream = client.GetStream();
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] buffer = encoder.GetBytes("Hello Server!");
clientStream.Write(buffer, 0, buffer.Length);
clientStream.Flush();
}
Connection accepted from 192.168.2.236:22811
Recieved...
Hello Server!
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这可能是更好的倾听者。
public void listener()
{
TcpListener tcpListener = new TcpListener(IPAddress.Any, 30000);
tcpListener.Start();
TcpClient tcpClient = tcpListener.AcceptTcpClient();
NetworkStream clientStream = tcpClient.GetStream();
byte[] message = new byte[4096];
int bytesRead;
while (true)
{
bytesRead = 0;
try
{
//blocks until a client sends a message
bytesRead = clientStream.Read(message, 0, 4096);
}
catch
{
//a socket error has occured
break;
}
if (bytesRead == 0)
{
//the client has disconnected from the server
break;
}
//message has successfully been received
ASCIIEncoding encoder = new ASCIIEncoding();
Console.Write(encoder.GetString(message, 0, bytesRead));
}
tcpClient.Close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
674 次 |
| 最近记录: |