源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Socket不能选择本地IP连接问题如何解决

  • 时间:2020-05-03 01:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Socket不能选择本地IP连接问题如何解决
现在碰到一个刺手的问题,是这样的! 我的客户端要通过socket与服务器端进行通信,可是客户端服务器上是双ip地址(比方是192.168.1.10和192.168.1.20),可是 服务器端只允许192.168.1.20进行通信,进行了ip限制,在客户端上192.168.1.10是主ip,192.168.1.20是从ip,如 果我简单通过socket建立连接,程序默认会以192.168.1.10进行通信,这样服务器端会拒绝,我应该如果写才能够解决这个问题呢? 不要手动,要用程序自动实现 ,可以绑定本地的任何IP地址。 如本机IP地址为: 192.168.1.205,192.168.1.204,192.168.1.203 实现结果为: C:\>netstat -an | find "59.39.71.94" TCP 192.168.1.205:2302 59.39.71.94:80 ESTABLISHED C:\>netstat -an | find "59.39.71.94" TCP 192.168.1.203:12302 59.39.71.94:80 ESTABLISHED C:\>netstat -an | find "59.39.71.94" TCP 192.168.1.204:7802 59.39.71.94:80 ESTABLISHED 方便的话给个代码吧!谢谢!
[u]复制代码[/u] 代码如下:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 string serverIp = "59.39.71.94"; int serverProt = 80; string clientIp = "192.168.1.104"; int clientProt = 8012; var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var ipHostEntry = Dns.GetHostEntry(serverIp); var ipEndPoint = new IPEndPoint(ipHostEntry.AddressList[0], serverProt); var address = IPAddress.Parse(clientIp); if (address != null) { var localEp = new IPEndPoint(address, clientProt); socket.Bind(localEp); } socket.Connect(ipEndPoint); //建立长连接
以上代码就可以完全实现上面的功能。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部