c#socket中,如何在两台不同电脑运行聊天程序的时候,获取对方IP地址
5个回答
展开全部
试试看端口固定,然后用udp广播的方式向整个局域网发探测包,然后如果收到包的话就回复,这是一种方法。
如果不在同一个局域网内,那只能找一台专门的服务器,在你的程序启动的时候把自己的ip信息登记到服务器上,然后从服务器获取另一个人的ip信息
如果不在同一个局域网内,那只能找一台专门的服务器,在你的程序启动的时候把自己的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和端口吧。这个时候要怎么办就你自己定应用层协议了。
展开全部
C#Socket通讯机制是UDP方式,也就是说是单向的,除非是对方把他的ip放在发送数据包里面,不然你获取不到对方的IP。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要架设服务端,服务端会知道两个客户端的地址,并分别通知客户端。可以参考一下ESFramework通信框架的实现,是纯C#的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Socket.RemoteEndPoint.Address
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询