首页 > 代码库 > udp在窗体上的显示遇到的问题
udp在窗体上的显示遇到的问题
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace 显示用户ip{ public partial class Form1 : Form { private static Socket socketUdp; private static IPEndPoint ip; private static string hostName; private static byte[] data; private static EndPoint ipe2; public Form1() { InitializeComponent(); socketBroadcast(); } private void socketBroadcast() { socketUdp = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); ip = new IPEndPoint(IPAddress.Broadcast, 6800); socketUdp.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1); hostName = Dns.GetHostName(); string stringData = http://www.mamicode.com/":USER:" + hostName; data = Encoding.ASCII.GetBytes(stringData); Thread thread = new Thread(sendMessage); thread.Start(); receiveMessage(); } private void sendMessage() { while(true) { socketUdp.SendTo(data, ip); Thread.Sleep(5000); } } private void receiveMessage() { Socket socketReceive = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint ipe1 = new IPEndPoint(IPAddress.Any, 6800); ipe2 = ipe1; socketReceive.Bind(ipe1); while(true) { byte[] data1 = new byte[1024]; int recv = socketReceive.ReceiveFrom(data1, ref ipe2); string stringData = http://www.mamicode.com/Encoding.ASCII.GetString(data1, 0, recv); string messageHead = stringData.Substring(0, 6); string messageBody = stringData.Substring(6); switch (messageHead) { case ":USER:": { string[] sBody = messageBody.Split(‘;‘); listBox1.Items.Add(ipe2.ToString()); //不管他实现结果是什么,但是连winform窗体都出现不了。 break; } } //MessageBox.Show(string.Format("receive from:{0} ,ip is {1}", stringData, ipe2.ToString())); } } }}
1、这段代码请老司机看看,遇到了一个奇怪的问题,在循环里面是出现不了窗体的,为什么。我没有明白,没有弄循环就能窗体出来。
刚开始学,然后就想实现一下上线通知,下线通知这个,但是,却死活弄不出来。可以的话,老司机给给思路。谢谢。
2、还有很奇怪的问题,在思路理清的情况下,还有很多代码写不出来是不是很奇怪。基础不扎实吧
3、纯写一个即时通讯的软件,对于新手来说是不是最基本的,
udp在窗体上的显示遇到的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。