时间:2021-05-20
现在碰到一个刺手的问题,是这样的!
我的客户端要通过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:///--> 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); //建立长连接
以上代码就可以完全实现上面的功能。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本地连接没有有效的ip配置了,那么win7系统提示本地连接没有有效的ip配置如何解决呢?今天为大家分享win7系统提示本地连接没有有效的ip配置的解决方法。
电脑不能上网后通过系统在对电脑进行网络诊断时检测到“本地连接”没有有效的IP配置,那么应该如何解决呢?1、系统的检测报告如下所示,并有如
192.168.1.1路由器地址,无法弹出用户名和密码对话框,针对此类路由器问题那如何解决呢?本地连接的IP地址与路由器LAN口IP处于同一网段。如果不在同一网
MySQLlocalhost连接,但不能用IP连接问题解决方案主要涉及到MySQL可以用localhost连接,但不能用IP连接的问题方面的内容,对于MySQL
无线网络连接未启用DHCP是怎么回事?如何解决?其实这是由于你的电脑未设置自动获取IP和DNS的缘故,所以要想解决这个问题,设置好电脑自动获取IP即可,下面小编