110,535
社区成员
发帖
与我相关
我的任务
分享
delegate void AddList(string s);
private void MessageRecevier_Load(object sender, EventArgs e)
{
Thread thread1 = new Thread(new ThreadStart(Recevice));
thread1.IsBackground = true;
thread1.Start();
}
void Recevice()
{
string hostname = System.Net.Dns.GetHostName();
System.Net.IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(hostname);
string ip = ipEntry.AddressList[0].ToString();
IPEndPoint localEP = new IPEndPoint(IPAddress.Parse(ip), 9060);
ArrayList list = new ArrayList(10);
server = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
server.Bind(localEP);
EndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
int recv;
byte[] data;
while (true)
{
data = new byte[1024];
recv = 0;
recv = server.ReceiveFrom(data, ref remoteEP);
String message = Encoding.Default.GetString(data, 0, recv);
String Data = Encoding.Default.GetString(data);
ChangeUI(Data);
}
}
void ChangeUI(string s)
{
if (lvMessage.InvokeRequired)
{
Invoke(new AddList(ChangeUI), s);
}
else
{
//改变ListView lvMessage
lvMessage.Items.Insert(0, lvi);
}
}