我正在尝试使用C#与网络中的远程系统建立连接。然后该程序抛出以下异常
无法建立连接,因为目标计算机主动拒绝它192.168.1.42:8000
private void Start_Sending_Video_Conference(string remote_IP,int port_number)
{
try
{
ms = new MemoryStream();// Store it in Binary Array as
pictureBox1.Image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] arrImage = ms.GetBuffer();
myclient = new TcpClient (remote_IP,port_number);//Connecting with server
myns = myclient.GetStream ();
mysw = new BinaryWriter (myns);
mysw.Write(arrImage);//send the stream to above address
ms.Flush();
mysw.Flush();
myns.Flush();
ms.Close();
mysw.Close ();
myns.Close ();
myclient.Close ();
}
catch (Exception ex)
{
Capturing.Enabled = false;
MessageBox.Show(ex.Message, "Video Conference Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
答案 0 :(得分:1)
请检查通常的嫌疑人:
答案 1 :(得分:0)
你确定有什么东西在听吗?在这种情况下,您的本地服务器似乎实际上拒绝了该请求。请确认服务器正在运行,TCPServer正在侦听,并且服务器正在运行的计算机(如果它在本地,这应该不是问题)设置为允许来自LAN的传入数据包。
答案 2 :(得分:0)
如果上述解决方案不起作用,则问题可能出在服务器代码中。 您可能已经使用TcpListener的实例来侦听指定的端口,但是您将哪个IpAddress传递给构造函数? 如果您编写了以下代码:
mylistener = new TcpListener(IPAddress.Loopback, 8000);
这将导致该错误。 发生这种情况是因为Loopback不会使侦听器监听所有网络接口,而只会监听来自localhost(127.0.0.1)的请求。
请改用此代码
mylistener = new TcpListener(IPAddress.Any, 8000);