当前位置:  编程技术>.net/c#/asp.net

socket不能选择本地IP连接的解决方法

    来源: 互联网  发布时间:2014-08-30

    本文导语:  有没有想到用程序自动绑定本地的任何IP地址呢,如果你恰有此意,那么请仔细阅读本文。 客户端要通过socket与服务器端进行通信,可是客户端服务器上是双ip地址(比方是192.168.1.10和192.168.1.20),可是 服务器端只允许192.168.1.2...

有没有想到用程序自动绑定本地的任何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地址为:
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

例子:
 

代码示例:
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); //建立长连接

    
 
 

您可能感兴趣的文章:

  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • socket 断开连接如何再恢复连接
  • 什么是socket的长连接,以及如何实现长连接,长连接和短连接有什么区别?
  • .net/c#/asp.net iis7站长之家
  • socket 连接问题(不要见笑)
  • 如何跨网段进行socket连接
  • socket连接建立,收不到告警的情况?netstat结果如下
  • 服务器与客户端建立socket连接,如何获得端口号.谢谢
  • ftp连接出现socket错误=#10054的解决方法
  • 如何清楚linux系统中以退出程序的socket连接?
  • Socket连接的时间不能控制??请帮小妹
  • http连接,服务器端关闭socket
  • 请问javaBean能不能进行非本机的socket连接
  • 200分求问j2me里如何建立socket连接?
  • Linux下的Socket通信如何断开连接的端口从而实现重复使用该端口
  • 一个进程打开的socket长连接能否达到10000个
  • socket怎样限制客户端连接数?
  • 关于LINUX SOCKET连接CPU占用问题
  • SOCKET调用close断开连接的时候回主动发FIN ACK包吗?
  • SOCKET 长连接
  • 难道applet不能用socket?
  • UDP SOCKET编程,不能发送广播数据包
  • Linux 能不能将多个socket加入相同组播组组播
  • socket句柄不能及时释放的问题
  • java 与c++用socket通讯的问题??字符串不能接收到??急啊!
  • 请教,socket中recv不能一次完全接收send发送的字节数?
  • 请问一下, 我用applet和服务器socket通信, 是不是不能用IE浏览运行我的applet程序?
  • Socket不能选择本地IP连接问题如何解决
  • 请问linux下socket编程服务器数据只能发送不能接收吗?
  • 创建SOOK_RAW的socket不能绑定
  • 不能用Socket或是ServerSocket读取数据
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样选择网卡进行socket编程?急,多谢了!!
  • 请问如何选择网卡进行socket编程?
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 我的ping程序怎么老是出现Socket operation on non-socket


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3