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

 更新时间:2012年11月30日 15:16:29   作者:  
本文将介绍一个不要手动,要用程序自动实现 ,可以绑定本地的任何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
方便的话给个代码吧!谢谢!
复制代码 代码如下:

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); //建立长连接

以上代码就可以完全实现上面的功能。

相关文章

  • C#实现简单的RSA非对称加密算法示例

    C#实现简单的RSA非对称加密算法示例

    这篇文章主要介绍了C#实现简单的RSA非对称加密算法,结合实例形式分析了C#实现RSA加密的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • c# 快速排序算法

    c# 快速排序算法

    快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)
    2013-10-10
  • C# 使用AspriseOCR.dll实现验证码识别

    C# 使用AspriseOCR.dll实现验证码识别

    这篇文章主要介绍了C# 使用AspriseOCR.dll实现验证码识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • C# 操作XML文档 使用XmlDocument类方法

    C# 操作XML文档 使用XmlDocument类方法

    对于很大的XML文档,可以使用XmlReader类来读取。因为XmlReader使用Steam(流)来读取文件,所以不会对内存造成太大的消耗。下面就来看一下如何使用XmlDocument类,需要的朋友可以参考下
    2012-11-11
  • winform实现可拖动的自定义Label控件

    winform实现可拖动的自定义Label控件

    这篇文章主要为大家详细介绍了winform实现可拖动的自定义Label控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • C#交错数组用法实例

    C#交错数组用法实例

    这篇文章主要介绍了C#交错数组用法,较为详细的分析了交错数组的概念、用法并实例分析了交错数组的使用技巧,需要的朋友可以参考下
    2015-04-04
  • C#字符串常见操作总结详解

    C#字符串常见操作总结详解

    本篇文章是对C#中字符串的常见操作进行了详细的总结介绍,需要的朋友参考下
    2013-05-05
  • C#学习基础概念二十五问 11-15

    C#学习基础概念二十五问 11-15

    C#学习基础概念二十五问 11-15...
    2007-04-04
  • C#基于正则表达式删除字符串中数字或非数字的方法

    C#基于正则表达式删除字符串中数字或非数字的方法

    这篇文章主要介绍了C#基于正则表达式删除字符串中数字或非数字的方法,涉及C#针对数字的简单正则匹配相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • C#双缓冲技术实例详解

    C#双缓冲技术实例详解

    这篇文章主要介绍了C#双缓冲技术,结合实例形式较为详细的分析了C#双缓冲的功能,实现技巧与相关注意事项,需要的朋友可以参考下
    2016-02-02

最新评论