C# 服务器需要很长时间才能响应,我在运行后从浏览器收到连接超时消息

C# 服务器需要很长时间才能响应,我在运行后从浏览器收到连接超时消息,c#,C#,我想编写一个程序,在工作组中将文本(消息)从一个Ip地址传递到另一个Ip地址。我在这个程序中有“发送”和“接收”按钮,发送是正常的,但当我单击“接收”时,在“尝试”块的第一行,服务器需要很长时间才能响应,并且我在运行后从浏览器中收到连接超时消息。 textbox1是发送方IP地址。 textbox2是接收器IP地址。 我的代码是: Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, Protocol

我想编写一个程序,在工作组中将文本(消息)从一个Ip地址传递到另一个Ip地址。我在这个程序中有“发送”和“接收”按钮,发送是正常的,但当我单击“接收”时,在“尝试”块的第一行,服务器需要很长时间才能响应,并且我在运行后从浏览器中收到连接超时消息。 textbox1是发送方IP地址。 textbox2是接收器IP地址。 我的代码是:

 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);

protected void receive_Click(object sender, EventArgs e)
{
    String ip = TextBox2.Text;
    IPAddress ipa = IPAddress.Parse(ip);
    IPEndPoint endPoint = new IPEndPoint(ipa, 1029);
    socket.Connect(endPoint);
    byte[] buffer = new byte[1024];
    // length of the text "Hello world!"
    try
    {
        int iRx= socket.Receive(buffer);
        TextBox4.Text = System.Text.Encoding.ASCII.GetString(buffer);
    }
    catch (Exception ex) { /* ... */ }
}
protected void send_Click(object sender, EventArgs e)
{
    String ip =TextBox1.Text ;
    IPAddress ipa = IPAddress.Parse(ip);
    IPEndPoint endPoint = new IPEndPoint(ipa, 1029);
    socket.Connect(endPoint);
    try
    {
        string str = "Hello word";
        byte[] byData = System.Text.Encoding.ASCII.GetBytes(str);
        socket.Send(byData);
    }
    catch (SocketException se)
    {
    }
}

我构建的PHP应用程序也有类似的问题。发生的情况是-浏览器将等待接收到一定数量的最小数据,然后再执行。。。任何东西如果它没有看到太多的通信,它将只是超时。我是如何解决这个问题的,我使用for循环在缓冲区中填充空格(“”),然后刷新缓冲区,这告诉浏览器发送它接收到的数据。我会尝试强制浏览器采取行动。。。因为他们不喜欢自己动手。

你能把你的代码发给我吗?我理解你的意思,但我需要帮助,因为我在PHP中使用了ob_flush()函数和end_all_flush()函数等,所以会有很大的不同。。。但我可以研究如何用csharp反映这一点。。。。除非你想让PHP代码只是看看发生了什么…我在缓冲区定义后添加了一个for块,并用0填充缓冲区。我应该在哪里刷新缓冲区?好吧。。。很难说-我需要更多的测试/查看,但我会尝试以下方法:1)设置缓冲区2)用废话填充缓冲区3)用消息填充缓冲区4)刷新()5)尝试接收消息