我需要编写自己的客户端,以从使用TCP协议的现有WCF主机读取数据。
我的想法是创建套接字,连接到远程主机并通过该套接字进行通信。
这是我正在使用的代码
//this part works well
NetTcpBinding binding = new NetTcpBinding(SecurityMode.None);
EndpointAddress address = new EndpointAddress("net.tcp://MY_ADDRESS:6334/IESI");
ChannelFactory<IIESIRemote> factory = new ChannelFactory<IIESIRemote>(binding, address);
IIESIRemote remote = factory.CreateChannel();
IESIState state = remote.State;
((IClientChannel)remote).Close();
factory.Close();
//this part does not work
IPAddress ipAddress = Dns.GetHostEntry("MY_ADDRESS").AddressList[0];
IPEndPoint ep = new IPEndPoint(ipAddress, 6334);
Socket socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(ep);
当我使用传统的WCF客户端时,一切正常。但是,当我尝试使用套接字进行连接时,会收到“无法建立连接,因为目标计算机主动拒绝了它。”
能否请您帮助我了解我在做什么错?