c#socket中,如何在两台不同电脑运行聊天程序的时候,获取对方IP地址

 我来答
空雪梦见
2013-04-17 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1189万
展开全部
试试看端口固定,然后用udp广播的方式向整个局域网发探测包,然后如果收到包的话就回复,这是一种方法。
如果不在同一个局域网内,那只能找一台专门的服务器,在你的程序启动的时候把自己的ip信息登记到服务器上,然后从服务器获取另一个人的ip信息
追问
我也想用广播的方式的,那么广播怎么写呢,我们老师说只要几句代码就行了,新手不懂啊~~~
追答
UdpClient uc = new UdpClient();
uc.EnableBroadcast = true;
byte[] packet = Encoding.UTF8.GetBytes("Hello");
uc.Send(packet, packet.Length, new IPEndPoint(IPAddress.Broadcast, 10800));

我是这么干的……假设端口是10800
在UdpClient接收的时候可以拿到对方的ip和端口吧。这个时候要怎么办就你自己定应用层协议了。
传奇勇者
2013-04-17 · TA获得超过747个赞
知道大有可为答主
回答量:1706
采纳率:75%
帮助的人:806万
展开全部
C#Socket通讯机制是UDP方式,也就是说是单向的,除非是对方把他的ip放在发送数据包里面,不然你获取不到对方的IP。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浪漫书缘1
2013-04-17
知道答主
回答量:77
采纳率:0%
帮助的人:21.9万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thomas201204
2013-04-27
知道答主
回答量:8
采纳率:0%
帮助的人:3.5万
展开全部
需要架设服务端,服务端会知道两个客户端的地址,并分别通知客户端。可以参考一下ESFramework通信框架的实现,是纯C#的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骑车到处逛
2013-04-17 · TA获得超过160个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:122万
展开全部
Socket.RemoteEndPoint.Address
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式