C# Socket编程中用Udp发送广播后,客服端怎么反馈信息到服务器???

tianliang1 2011-03-21 05:09:30
本意是想用Udp发广播,做一个验证程序。

任意局域网内一台计算机可用做服务器来不断的发送广播,要求局域网内最多5个能接收广播。

所以,就需要客服端接收到广播后,反馈信息回服务器,服务器获取反馈信息后,判断是否已有5个连接数。若超过了,再做一些处理。

若只是发送广播如下,很简单,但是,怎么才能限制接收广播的客服端个数呢???望高手指教!

若有代码示例,小弟不胜感激!

...全文
621 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianliang1 2011-03-21
  • 打赏
  • 举报
回复
客服端类似于这样,服务器端呢?
            byte[] data = new byte[1024];
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);//定义一网络端点
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//定义一个Socket
newsock.Bind(ipep);//Socket与本地的一个终结点相关联

IPEndPoint IpEndPoint = new IPEndPoint(IPAddress.Any, 0);//定义要发送的计算机的地址
EndPoint endPoint = (EndPoint)(IpEndPoint);//
this.lbShow.Text = "正在接收......";

int recv = 0;
recv = newsock.ReceiveFrom(data, ref endPoint);//接受数据
txtReceive.Text = Encoding.ASCII.GetString(data);

string strBackMessage = "Link Sucess";//反馈连接成功信息
data = Encoding.ASCII.GetBytes(strBackMessage);
newsock.SendTo(data, data.Length, SocketFlags.None, endPoint);
newsock.Close();
tianliang1 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bdmh 的回复:]
引用 5 楼 tianliang1 的回复:

就是不知道怎么反馈ip了。

把ip发送过去啊
[/Quote]
是啊,你要SendTo到服务器端去,那服务器端什么时候接收?
bdmh 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tianliang1 的回复:]

就是不知道怎么反馈ip了。
[/Quote]
把ip发送过去啊
tianliang1 2011-03-21
  • 打赏
  • 举报
回复
精通Socket的大虾们,帮帮忙!!!谢谢。
tianliang1 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
先广播一个小消息,然后客户端接收到后,反馈ip,服务端接收到反馈后,记录ip,到5个了就不再记录,然后给这五个ip发消息
[/Quote]
就是不知道怎么反馈ip了。
这个服务器端什么时候开始接收信息呢?若用Timer一直接收的话,就会产生卡死现象!
客服端也是,什么时候就发送呢?一直发送吗?这之间我总顺不通。哪位大哥可以写点demo来看看!

道理很简单,稍懂Socket的都知道,就是代码写出来,困着了我!!!
xxiju203 2011-03-21
  • 打赏
  • 举报
回复
UDP是无连接的呀,2楼的方法可行,你也可以考虑组播的方式。

当然你也可以先让客户端连接过来,前5个连上来的你就告诉他可以接收,后面连接上来的就告诉他不接收就好了,之后你发广播的时候不接收的客户端即使收到也不作处理即可。
风之影子 2011-03-21
  • 打赏
  • 举报
回复
制定自己的发送应答协议。

bdmh 2011-03-21
  • 打赏
  • 举报
回复
先广播一个小消息,然后客户端接收到后,反馈ip,服务端接收到反馈后,记录ip,到5个了就不再记录,然后给这五个ip发消息
程序员查理 2011-03-21
  • 打赏
  • 举报
回复
mark 研究研究

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧