UDP信息接收问题 利用UDP协议写的接收用户即时通信程序,在接收到其他用户发送来的信息时如何实现新建一个窗口并将其信息放在新建窗口里?最好给个例子!新手不会跨线程创建一个新窗口!哪位高人最好能给个例子! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 接收UDP 通过线程更新listview :lvMessage创建窗口原理一样delegate void AddList(string s); 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 { ListViewItem lvi = new ListViewItem(); lvi.ImageIndex = 1; lvi.Tag = mi.MnID + mi.Time; lvi.SubItems.Clear(); lvi.SubItems[0].Text = s; lvMessage.Items.Insert(0, lvi); } } udp经常会丢失数据,不太稳定啊。 能给出一段代码实现以下功能的同样有分:双击下拉列表的代码如下: public void listBox1_MouseDoubleClick(object sender, MouseEventArgs e){ ……}某个类中的代码: myForm.listBox1.MouseDoubleClick+=new MouseEventHandler(myForm.listBox1_MouseDoubleClick);myForm.listBox1已经绑定双击事件,我想在这个类中通过委托手动调用listBox1_MouseDoubleClick方法。 从excel中数据插入到access里面出问题 C#窗体连接数据库的问题(新手求教!) 可以改过页面上显示的连接吗? 小弟新手,用C#做个日程表,是什么思路呢? C# 通讯 心跳包问题 修改密码的一段小程序,if语句有什么问题吗大家帮忙看一下 C#调用存储过程 C# 多进程 动态加卸载模块 框架 如何使窗体激活,而非窗体上的控件激活? 2001年最后一天,凌晨2:30分,服务器可以证明我还在加班。 怎样捕获自定义控件中的控件事件。 如何用C#代码将工作薄模板中的单个工作表
创建窗口原理一样delegate void AddList(string s);
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
{
ListViewItem lvi = new ListViewItem();
lvi.ImageIndex = 1;
lvi.Tag = mi.MnID + mi.Time;
lvi.SubItems.Clear();
lvi.SubItems[0].Text = s;
lvMessage.Items.Insert(0, lvi);
}
}
双击下拉列表的代码如下:
public void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
……
}
某个类中的代码:
myForm.listBox1.MouseDoubleClick+=new MouseEventHandler(myForm.listBox1_MouseDoubleClick);
myForm.listBox1已经绑定双击事件,我想在这个类中通过委托手动调用listBox1_MouseDoubleClick方法。