2011-05-18 171 views
1

我有一个奇怪的问题。我正在尝试编写一个使用套接字进行通信的C#服务器 - 客户端项目。我是C#的新手,但我已经用Java编写了相同的项目,并且在那里工作得很好。C#套接字服务器不能从客户端接收

因此,客户端连接到服务器,从套接字的网络流创建读/写流并通过它发送单个字符串,但服务器不会收到任何内容。

我确定服务器正常工作,因为我已经连接了一个Java客户端,并且它从客户端接收字符串。

我不明白怎么来的套接字连接,但没有通过它。

下面是客户端的代码:

... 
socket = new TcpClient("localhost", PORT); 
NetworkStream ns = socket.GetStream(); 
StreamReader rin = new StreamReader(ns); 
StreamWriter wout = new StreamWriter(ns); 
Console.WriteLine("-->Connected to server"); 
string msg; 
for (; ;) 
{ 
    Console.WriteLine("waiting to write"); 
    while(user.Equals("")) //user is set in Form thread working in parallel 
     System.Threading.Thread.Sleep(100); 
    Console.WriteLine("sending: " + user); 
    wout.WriteLine(user); 
    wout.Flush(); 
    Console.WriteLine("SENT"); 
    ... 

端口是相同的,没有引发异常(我有一个尝试 - 捕获解决这个问题),客户端发送通过StreamWriter的字符串,因为它打印出“派”,但在接收端(streamReader.ReadLine())并没有什么服务器等待发生......

+0

不要使用反引号'撇号为。这使编辑认为你正在输入代码片段。谢谢:-) – mellamokb 2011-05-18 17:40:12

+0

一切看起来不错。在执行写入操作后,您是否看到“已发送”写入控制台? – Will 2011-05-18 17:41:07

+0

服务器代码可能会有帮助,因为这似乎是问题所在。 – 2011-05-18 17:41:13

回答

0

试试这个:

socket = new TcpClient(); 
socket.Connect("localhost", PORT); 
//... Your code continues here 
相关问题