国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

Socket不能選擇本地IP連接問題如何解決

2020-01-24 03:38:09
字體:
來源:轉載
供稿:網友
現在碰到一個刺手的問題,是這樣的!
我的客戶端要通過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); //建立長連接

以上代碼就可以完全實現上面的功能。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵阳市| 绥芬河市| 辉南县| 青阳县| 平泉县| 哈巴河县| 金堂县| 梅河口市| 饶平县| 通辽市| 安陆市| 兴海县| 苗栗市| 和顺县| 洪泽县| 任丘市| 邓州市| 衢州市| 买车| 宜章县| 收藏| 安图县| 凤阳县| 云浮市| 信丰县| 绥阳县| 渝中区| 江门市| 茂名市| 漳浦县| 湖口县| 湘乡市| 南昌县| 舞钢市| 盐城市| 个旧市| 清河县| 法库县| 海宁市| 当涂县| 府谷县|