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