需求是这样的
Server端 负责采集一个设备通过IP传递过来的信心 如(1,2,3,4,5)
业务要求。接收到1 则将1发送给Client端 ip(110.110.11.1) ,接收到2则将2发送给Client端 ip(110.110.11.2) 一次类推。。。
ip地址实际上是同数据库里面读取的 他们对应的 信号类别 举例 IP:110.110.11.1 信号列别 1,端口也有
因为对socket还不是很熟,时间紧急求救。 用 C#winform写这个玩意
如何实现
------解决方案--------------------------------------------------------
你怎么把技术帖发到非技术区呢?
本来想帮你的
但我的帐号在非技术禁言了
帮不了你啊
------解决方案--------------------------------------------------------
如果是安全协议又不想丢包 就用 tcp,你这是发心跳包吗?如果不在乎丢包就用UDP,还有网上很多例子,google 一下
此消息通过 【CSDN论坛 Winform正式版】 回复!有关此工具
------解决方案--------------------------------------------------------
发错区域了。。
不在乎丢包 所以用 UDP
代码写都差不多了但是都是copy 的还是希望有大牛推荐些更好的思想和高质量代码
------解决方案--------------------------------------------------------
关注中。。。。。。。
------解决方案--------------------------------------------------------
发送消息,此消息向所有检测到的ip进行发送,,如何实现
------解决方案--------------------------------------------------------
问题当天解决了分享下我是怎么做的
Server端:
#region 服务器发送数据到客户端方法
Socket sendSocket = null;
private void SendsMsg(string msg, string ip, int port)
{
sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);
EndPoint endPoint = (EndPoint)iPEndPoint;
sendSocket.SendTo(System.Text.Encoding.Default.GetBytes(msg), iPEndPoint);
}
#endregion
Client端:
Socket connectionSocket = null;
private void LoadingMsg(string ip, string port)
{
connectionSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse(ip), Convert.ToInt32(port));
connectionSocket.Bind(iPEndPoint);
Thread acceptThread = new Thread(Accept);
acceptThread.IsBackground = true;
acceptThread.Start();
}
void Accept()
{
while (true)
{
byte[] by = new byte[1024];