111,092
社区成员




static void Main(string[] args)
{
IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 60000);
Socket s = new Socket(endPoint.Address.AddressFamily,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint senderRemote = (EndPoint)sender;
s.Bind(endPoint);
byte[] msg = new Byte[256];
Console.ForegroundColor = ConsoleColor.Red; //设置字体颜色为红色
Console.WriteLine("Waiting...");
LogMessage message = new LogMessage();
while(true)
{
s.ReceiveFrom(msg, ref senderRemote);
string deviceID = Convert.ToString(msg[5], 16);
//string rt = byteToHexStr(msg);
string iPstr = senderRemote.ToString();
ipStringSplit = iPstr.Split(':') ;
Console.ForegroundColor = ConsoleColor.Green;
message.DeviceID = deviceID;
message.DeviceIP = ipStringSplit[0];
message.DevicePort =ipStringSplit[1];
log.Info(message);
}
}
log.Info(message);
log.Info(message);
如果单纯的只打印到控制台上,或只单纯的写入 LOG文件,,即服务端不同时做多个执行动作
是不是会好一些
觉得
这个是调用LOG4NET的方法:
log.Info(message);
消耗不少时间
或者有没有这样的可能
弄两个线程
一个只接受数据,并尽量的缓存
另个线程 去处理