Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SocketException正在尝试连接到服务器;连接尝试失败,因为连接方在一段时间后没有正确响应”;_C#_Sockets_Tcp_Server_Client - Fatal编程技术网

C# SocketException正在尝试连接到服务器;连接尝试失败,因为连接方在一段时间后没有正确响应”;

C# SocketException正在尝试连接到服务器;连接尝试失败,因为连接方在一段时间后没有正确响应”;,c#,sockets,tcp,server,client,C#,Sockets,Tcp,Server,Client,我有一个服务器,它只是一个监听我电脑端口的程序。我有一个客户端程序,to,它连接到这个端口,发送请求并获取响应。为此,我使用带有tcp协议的System.Net.Socket类 问题是,当服务器在同一台计算机上时,我的客户机可以连接,但当我将客户机交给其他人时,它就不起作用了。SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。 我不明白,但因为我才刚刚开始,我觉得有什么东西瞒着我 这是我的密码: 客户: private

我有一个服务器,它只是一个监听我电脑端口的程序。我有一个客户端程序,to,它连接到这个端口,发送请求并获取响应。为此,我使用带有tcp协议的
System.Net.Socket

问题是,当服务器在同一台计算机上时,我的客户机可以连接,但当我将客户机交给其他人时,它就不起作用了。SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。 我不明白,但因为我才刚刚开始,我觉得有什么东西瞒着我

这是我的密码:

客户:

private void Connect_Click(object sender, EventArgs e)
        {
            try
            {
                sock.Connect(new IPEndPoint(IPAddress.Parse(ip.Text), 1234));
                new Thread(() =>
                {
                    read();
                }).Start();
            }
            catch (Exception ex)
            {
                //Manage exception
            }
        }

private void read()
        {
            while (true)
            {
                try
                {

                    byte[] buffer = new byte[255];
                    int rec = sock.Receive(buffer, 0, buffer.Length, SocketFlags.None);
                    if (rec <= 0)
                        throw new SocketException();

                    Array.Resize(ref buffer, rec);

                    //Displaying received data
                    Invoke((MethodInvoker)delegate
                    {
                        requests.Items.Add(Encoding.Default.GetString(buffer));
                    });
                }
                catch
                {
                    MessageBox.Show("DISCONNECTED");
                    sock.Close();
                    break;
                }
            }

            Application.Exit();
        }
private void Connect\u单击(对象发送方,事件参数e)
{
尝试
{
Connect(新的IPEndPoint(IPAddress.Parse(ip.Text),1234));
新线程(()=>
{
read();
}).Start();
}
捕获(例外情况除外)
{
//管理异常
}
}
私有void read()
{
while(true)
{
尝试
{
字节[]缓冲区=新字节[255];
int rec=sock.Receive(buffer,0,buffer.Length,SocketFlags.None);
如果(记录
private void Listen()
        {
            server.Listen(0);

            new Thread(AcceptOneConnection).Start();
        }

private void AcceptOneConnection()
        {
            if (client != null)
                client.Close();

            client = server.Accept();

            MessageBox.Show("Client accepted");

            while (true)
            {
                string received = ReceiveData();

                if (received == "stop connection")
                    break;

                string[] request = received.Split(' ');

                switch (request[0])
                {
                    case "register":
                        Register(request);
                        break;
                    case "login":
                        Login(request);
                        break;
                    case "disconnect":
                        UsersManager.Disconnect();
                        SendData("Disconnected");
                        break;
                    default:
                        SendData("Unknown request");
                        break;
                }
            }

            client.Close();
        }

private string ReceiveData()
        {
            try
            {
                byte[] buffer = new byte[255];
                int rec = client.Receive(buffer, 0, buffer.Length, 0);

                if (rec <= 0)
                    throw new SocketException();

                Array.Resize(ref buffer, rec);

                return Encoding.ASCII.GetString(buffer);
            }
            catch
            {
                return "";
            }
        }