【发布时间】:2011-02-21 22:33:13
【问题描述】:
我最近问了一个相关问题In C# how do I have a socket continue to stay open and accept new data? 并在一定程度上解决了这个问题,但现在我无法让我的服务器多次从同一个客户端接收数据。
我在 VS 中使用 windows 窗体编写了一个简单的套接字服务器,它有一个调用接收函数的按钮
public void Receive()
{
try
{
byte[] bytes = new byte[256];
received = s1.Accept().Receive(bytes);
receivedText.Text += System.Text.ASCIIEncoding.ASCII.GetString(bytes);
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return;
}
}
如果我第一次从我的客户端发送它可以工作,但是如果我尝试发送任何其他内容并单击接收,我的服务器只会循环并且永远不会接收新数据。但是,如果我从其他地方发送,或者从我的客户端重新启动连接,我就可以发送数据。
我希望我的服务器能够一次从同一个客户端接收任意数量的数据。请询问您是否需要更多代码/详细信息。不确定什么是相关的,因为我对套接字编程很陌生。
【问题讨论】: