一個分離代碼的問題

bb_chen 2009-10-09 05:08:11
        Thread acceptThread = new Thread(new ParameterizedThreadStart(AcceptUDP));
acceptThread.IsBackground = true;
acceptThread.Start(globalUDP);


private void AcceptUDP(object obj)
{
UdpState udp = (UdpState)obj;
try
{
while (udp.UDPClient.Client != null)
{
byte[] acceptbyte = new byte[1024];

IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);//定义要发送的计算机的地址
EndPoint Remote = (EndPoint)(sender);//

int mm = udp.UDPClient.Client.ReceiveFrom(acceptbyte, ref Remote);
IPEndPoint iep = (IPEndPoint)Remote;
ReceiveString = Encoding.ASCII.GetString(acceptbyte, 0, mm);
string exist = "0";
ReceiveString = iep.Address.ToString() + "\n" + ReceiveString.Replace("\r\n", "\n") + exist;
//AddDiscoveryEntry(ReceiveString);  此處主要將收到的信息顯示在界面。現打算將此socket相關全部做成一個類庫,那麼對於這處該如何處理?用繼承、重寫?謝謝
}
}
catch
{
}
}


//AddDiscoveryEntry(ReceiveString);  此處主要將收到的信息顯示在界面。現打算將此socket相關全部做成一個類庫,那麼對於這處該如何處理?用繼承、重寫?謝謝
...全文
52 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bb_chen 2009-10-09
  • 打赏
  • 举报
回复
謝謝zc124
zcl24 2009-10-09
  • 打赏
  • 举报
回复
        public delegate void MsgReceiveHandler(string msg);
public MsgReceiveHandler OnMsgReceive;
private void AcceptUDP(object obj)
{
UdpState udp = (UdpState)obj;
try
{
while (udp.UDPClient.Client != null)
{
byte[] acceptbyte = new byte[1024];

IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);//定义要发送的计算机的地址
EndPoint Remote = (EndPoint)(sender);//

int mm = udp.UDPClient.Client.ReceiveFrom(acceptbyte, ref Remote);
IPEndPoint iep = (IPEndPoint)Remote;
ReceiveString = Encoding.ASCII.GetString(acceptbyte, 0, mm);
string exist = "0";
ReceiveString = iep.Address.ToString() + "\n" + ReceiveString.Replace("\r\n", "\n") + exist;
//AddDiscoveryEntry(ReceiveString);  此處主要將收到的信息顯示在界面。現打算將此socket相關全部做成一個類庫,那麼對於這處該如何處理?用繼承、重寫?謝謝
if (OnMsgReceive != null)
{
OnMsgReceive(ReceiveString);
}
}
}
catch
{
}
}
//介面调用
public void UICallTest()
{
Form1 f = new Form1();
f.OnMsgReceive += new MsgReceiveHandler(ReceiveMsg);
}
public void ReceiveMsg(String msg)
{
Console.WriteLine(msg);
}
bb_chen 2009-10-09
  • 打赏
  • 举报
回复
謝謝指點,我試試
Red_angelX 2009-10-09
  • 打赏
  • 举报
回复
做成个事件委托 或者SendMessage到GUI
fengjian_428 2009-10-09
  • 打赏
  • 举报
回复
在//AddDiscoveryEntry(ReceiveString);  处触发事件 AddDiscoveryEntry方法写在外面
fengjian_428 2009-10-09
  • 打赏
  • 举报
回复
可以做成一个事件
bb_chen 2009-10-09
  • 打赏
  • 举报
回复
//AddDiscoveryEntry(ReceiveString);  此處主要將收到的信息顯示在界面。現打算將此socket相關全部做成一個類庫,那麼對於這處該如何處理?用繼承、重寫?謝謝

此處主要是牽涉到form界面的控件操作

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧