首页 > 解决方案 > 无法建立连接,因为目标机器活动拒绝它?

问题描述

我的问题很奇怪,我无法通过参考其他线程来找到解决方案。当我在属于域的两个系统上运行 microsoft 同步服务器套接字示例、同步客户端套接字示例时出现错误,但是当我在属于域的两个系统上运行相同的代码时,我没有收到此错误网络,但它们不是域的一部分!任何人都知道可能导致问题的原因是什么?

我试图解决的事情是我确保端口已打开,按照其他有类似问题的人的建议关闭了防火墙和防病毒软件。但它没有帮助。

服务器代码:

using System;  
using System.Net;  
using System.Net.Sockets;  
using System.Text;  

public class SynchronousSocketListener {  

// Incoming data from the client.  
public static string data = null;  

public static void StartListening() {  
    // Data buffer for incoming data.  
    byte[] bytes = new Byte[1024];  

    // Establish the local endpoint for the socket.  
    // Dns.GetHostName returns the name of the   
    // host running the application.  
    IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());  
    IPAddress ipAddress = ipHostInfo.AddressList[0];  
    IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);  

    // Create a TCP/IP socket.  
    Socket listener = new Socket(ipAddress.AddressFamily,  
        SocketType.Stream, ProtocolType.Tcp );  

    // Bind the socket to the local endpoint and   
    // listen for incoming connections.  
    try {  
        listener.Bind(localEndPoint);  
        listener.Listen(10);  

        // Start listening for connections.  
        while (true) {  
            Console.WriteLine("Waiting for a connection...");  
            // Program is suspended while waiting for an incoming connection.  
            Socket handler = listener.Accept();  
            data = null;  

            // An incoming connection needs to be processed.  
            while (true) {  
                int bytesRec = handler.Receive(bytes);  
                data += Encoding.ASCII.GetString(bytes,0,bytesRec);  
                if (data.IndexOf("<EOF>") > -1) {  
                    break;  
                }  
            }  

            // Show the data on the console.  
            Console.WriteLine( "Text received : {0}", data);  

            // Echo the data back to the client.  
            byte[] msg = Encoding.ASCII.GetBytes(data);  

            handler.Send(msg);  
            handler.Shutdown(SocketShutdown.Both);  
            handler.Close();  
        }  

    } catch (Exception e) {  
        Console.WriteLine(e.ToString());  
    }  

    Console.WriteLine("\nPress ENTER to continue...");  
    Console.Read();  

}  

public static int Main(String[] args) {  
    StartListening();  
    return 0;  
 }  
}  

客户代码::

using System;  
using System.Net;  
using System.Net.Sockets;  
using System.Text;  

public class SynchronousSocketClient {  

public static void StartClient() {  
    // Data buffer for incoming data.  
    byte[] bytes = new byte[1024];  

    // Connect to a remote device.  
    try {  
        // Establish the remote endpoint for the socket.  
        // This example uses port 11000 on the local computer.    
        IPAddress ipAddress = IPAddress.Parse("172.21.98.122");//Server IP  
        IPEndPoint remoteEP = new IPEndPoint(ipAddress,11000);  

        // Create a TCP/IP  socket.  
        Socket sender = new Socket(ipAddress.AddressFamily,   
            SocketType.Stream, ProtocolType.Tcp );  

        // Connect the socket to the remote endpoint. Catch any errors.  
        try {  
            sender.Connect(remoteEP);  

            Console.WriteLine("Socket connected to {0}",  
                sender.RemoteEndPoint.ToString());  

            // Encode the data string into a byte array.  
            byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>");  

            // Send the data through the socket.  
            int bytesSent = sender.Send(msg);  

            // Receive the response from the remote device.  
            int bytesRec = sender.Receive(bytes);  
            Console.WriteLine("Echoed test = {0}",  
                Encoding.ASCII.GetString(bytes,0,bytesRec));  

            // Release the socket.  
            sender.Shutdown(SocketShutdown.Both);  
            sender.Close();  

        } catch (ArgumentNullException ane) {  
            Console.WriteLine("ArgumentNullException : {0}",ane.ToString());  
        } catch (SocketException se) {  
            Console.WriteLine("SocketException : {0}",se.ToString());  
        } catch (Exception e) {  
            Console.WriteLine("Unexpected exception : {0}", e.ToString());  
        }  

    } catch (Exception e) {  
        Console.WriteLine( e.ToString());  
    }  
}  

public static int Main(String[] args) {  
    StartClient();  
    return 0;  
 }  
}

标签: c#.net

解决方案


推荐阅读