我有一个本地服务器 (mockhospital1),并且我在应用服务计划中有一个 Azure Web 应用。
我已经从这个 Azure Web 应用程序创建了一个混合连接来链接服务器 A,我在服务器 A 上下载了 HCM 并在那里添加了连接(这一切正常)。
我能够在 mockhospital1 上打开一个侦听器套接字(使用 ac# 控制台应用程序):
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, 2113));
listener.Listen(100);
然后我在我的 Azure Web 应用程序中创建了一个 webjob,通过 HC 发送到这个套接字:
IPHostEntry ipHost = Dns.Resolve("mockhospital1");
IPAddress ipAddress = ipHost.AddressList[0];
IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, 2113);
Socket sender = new Socket(System.Net.Sockets.AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sender.Connect(ipEndpoint);
这很好用。
现在我正在尝试以相反的方式连接(启动从 mockhospital1 到 Azure 的发送)。
我想要实现的是通过端口 2113 上的同一 HC 将数据从 mockhospital1 直接发送到我在 Azure WebJob 中创建的侦听器。我正在努力寻找一种方法来做到这一点。我不确定如何设置发送套接字。
这就是我在 Azure WebJob 上的内容(只需在正确的端口 - 2113 上设置一个侦听器):
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, 2113));
listener.Listen(100);
我不确定如何连接到这个以从 mockhospital1 发送。我试过下面的代码(我想我真的需要知道 IP_HOST_NAME 应该是什么):
byte[] receivedBytes = new byte[1024];
IPHostEntry ipHost = Dns.Resolve(IP_HOST_NAME);
IPAddress ipAddress = ipHost.AddressList[0];
IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, 2113);
Socket sender = new Socket(System.Net.Sockets.AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sender.Connect(ipEndpoint);
我想知道是否有人知道我如何才能实现我想要做的事情,或者我是否以错误的方式解决问题。