首页 新闻 会员 周边

求C#中socket通信,实现多网卡的客户端与服务器的通信。怎样指定ip,且端口随机分配

0
[已解决问题] 解决于 2015-10-27 16:27

求C#中socket通信,实现多网卡的客户端与服务器的通信。怎样指定ip,且端口随机分配

博主有没有解决这个问题呢?

艾紫霁的主页 艾紫霁 | 初学一级 | 园豆:165
提问于:2015-10-27 11:02
< >
分享
最佳答案
0

跟 listen 一样,connect 前,也先 bind 一下。

奖励园豆:5
Launcher | 高人七级 |园豆:45045 | 2015-10-27 11:06

如果先bind 的话,那端口就固定了啊。端口不是连到服务端的时候,随机分配的吗?

艾紫霁 | 园豆:165 (初学一级) | 2015-10-27 11:31

@艾紫霁: 想什么.客户端的端口是随机的,但是服务端的端口是固定.

吴瑞祥 | 园豆:29449 (高人七级) | 2015-10-27 11:53

@吴瑞祥: 是啊,那怎么在发送给服务端的时候,固定ip,且端口是服务端随机分配的呢?

艾紫霁 | 园豆:165 (初学一级) | 2015-10-27 12:36

@艾紫霁: bind 可以指定本地的 ip 和 port,跟服务器没关系。

Launcher | 园豆:45045 (高人七级) | 2015-10-27 13:55

@Launcher: 天呐,我被你们弄晕了。求代码。

艾紫霁 | 园豆:165 (初学一级) | 2015-10-27 14:06

@Launcher: 

我固定的ip,和端口。发送不过去。

IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("192.168.1.10"), 40000);
Socket clientSk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSk.Bind(ipEnd);

clientSk.Connect(new IPEndPoint(IPAddress.Parse(SendIp), SendPort));
byte[] datas = Encoding.GetEncoding("GBK").GetBytes(msg);
int bytesSent = clientSk.Send(datas);

艾紫霁 | 园豆:165 (初学一级) | 2015-10-27 14:11

@艾紫霁: 看错误代码

Launcher | 园豆:45045 (高人七级) | 2015-10-27 14:51

@Launcher: 可以了~谢谢~

艾紫霁 | 园豆:165 (初学一级) | 2015-10-27 16:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册