Java Socket Server和Client Socket c#问题

时间:2012-10-22 07:29:34

标签: c# java sockets bitstream

我在使用客户端c#socket与java服务器套接字进行通信时遇到问题。 问题来自于我尝试阅读回复时。我的代码是这样的:

IPHostEntry IPHost = Dns.Resolve("IP_ADDRESS");
Console.WriteLine(IPHost.HostName);
string []aliases = IPHost.Aliases; 
IPAddress[] addr = IPHost.AddressList;
Console.WriteLine(addr[0]);
EndPoint ep = new IPEndPoint(addr[0],1024); 
Socket sock =
   new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
sock.Connect(ep);
if(sock.Connected)
   Console.WriteLine("OK");
Encoding ASCII = Encoding.ASCII;
string Get = "A";
Byte[] ByteGet = ASCII.GetBytes(Get);
Byte[] RecvBytes = new Byte[256];
sock.Send(ByteGet, ByteGet.Length, 0);
Int32 bytes = sock.Receive(RecvBytes, RecvBytes.Length, 0);
Console.WriteLine(bytes);
String strRetPage = null;
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while( bytes > 0 ) {
   bytes = sock.Receive(RecvBytes, RecvBytes.Length, 0);
   strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
   Console.WriteLine(strRetPage );
}
sock.Close();

在代码行

Int32 bytes = sock.Receive(RecvBytes, RecvBytes.Length, 0);

我的客户端挂了。 我必须停止申请。似乎不响应套接字服务器。 套接字服务器的具体是发送和接收BitStream。

1 个答案:

答案 0 :(得分:1)

如果没有服务器的Java代码,很难说,但很可能你的服务器没有发送预期的256字节。由于Socket.Receive默认是阻塞的,因此客户端一直在等待数据。