首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

C#UDP发送跟接收消息

2012-12-16 
C#UDP发送和接收消息需求是这样的Server端 负责采集一个设备通过IP传递过来的信心 如(1,2,3,4,5)业务要求。

C#UDP发送和接收消息
需求是这样的

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];


                IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
                EndPoint iPEndPoint = (EndPoint)sender;
                int rev = connectionSocket.ReceiveFrom(by, ref iPEndPoint);
               string bs= System.Text.Encoding.Default.GetString(by,0,rev);
               AddList(bs);
            }
        }


热点排行