对第一个问题,你可以这样:做一个while(true)循环,循环内UdpClient 在不停Receive ,接收到 byte[] ReceivedByte 以后,马上建立一个线程去处理接收到的数据,你进入处理ReceivedByte 的线程时,不要直接对ReceivedByte 处理,复制一份过去,这里是继续Receive 的,至于你有几种格式什么的,与UdpClient 的Receive无关了,那是线程做的事情了,while体内继续下一次Receive。而UDP面向无连接,不存在最大客户端数量问题。
第二个问题:你在启动线程同时,ReceivedByte ,IP作为参数进去就可以了
同时建立一个string数组,把你要记录的数据都写到string数组里(写到string数组之后,同时写一下txt文件),再用一个定时器定时把string数组里的东西更新到你要显示的控件里面去。
不存在专门的函数做这些,都要自己实现,
对于线程带参数 格式如下:
new Thread(delegate(){dotask(recivebytecopy,ipaddress)}).start();
dotask实现:
void dotask(byte[] recive,string ipaddress)
{
//你要做的事情
}