.net实现TCP通信监听 System.Diagnostics.Process里使用 netstat -an看看把 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void StartListen(System.Windows.Forms.Control owner, Action<IPEndPoint, string> ProcessTcpCommand) { _owner = owner; GetTcpMessage = ProcessTcpCommand; tcpListenerThread = new Thread(TcpListenHandler); tcpListenerThread.IsBackground = true; tcpListenerThread.Start(); } private void TcpListenHandler() { tcpListener = new TcpListener(IPAddress.Any, global.TcpPort); IPEndPoint iep; tcpListener.Start(); while (isListening) { //异步方式接受 //tcpListener.BeginAcceptTcpClient(); System.Threading.Thread.Sleep(200); if (tcpListener.Pending()) { TcpClient tcpRecivceClient = tcpListener.AcceptTcpClient(); NetworkStream netStream = tcpRecivceClient.GetStream(); byte[] buffer = new byte[1024]; if (!netStream.DataAvailable) continue; List<byte> bufferTotal = new List<byte>(); while (netStream.DataAvailable) { netStream.Read(buffer, 0, 1024); bufferTotal.AddRange(buffer); } iep = (IPEndPoint)tcpRecivceClient.Client.RemoteEndPoint; tcpRecivceClient.Close(); netStream.Close(); string receive = System.Text.Encoding.UTF8.GetString(bufferTotal.ToArray()); _owner.Invoke(GetTcpMessage, new object[] { iep, receive }); } } tcpListener.Stop(); } 关于密封类的意义,已经用途,我这提供两个实际的。 C# wpf控件的排列 treeview绑定数据库 清除graphics所绘制的图形--在线等... 搞网页游戏需要怎样的服务器? c#调用delphi dll出现的问题 mid窗体的问题 继承PrintDocument,如何在打印之前得到PageCount DATAGRID问题,各位大虾来帮帮忙~~~ 屬性的問題? 大哥大姐 们 小妹妹 有是请教 c# 怎么用web控件呀 !!!!1 博客系统
{
_owner = owner; GetTcpMessage = ProcessTcpCommand;
tcpListenerThread = new Thread(TcpListenHandler);
tcpListenerThread.IsBackground = true;
tcpListenerThread.Start();
} private void TcpListenHandler()
{
tcpListener = new TcpListener(IPAddress.Any, global.TcpPort);
IPEndPoint iep;
tcpListener.Start(); while (isListening)
{
//异步方式接受
//tcpListener.BeginAcceptTcpClient();
System.Threading.Thread.Sleep(200);
if (tcpListener.Pending())
{
TcpClient tcpRecivceClient = tcpListener.AcceptTcpClient(); NetworkStream netStream = tcpRecivceClient.GetStream();
byte[] buffer = new byte[1024];
if (!netStream.DataAvailable)
continue;
List<byte> bufferTotal = new List<byte>();
while (netStream.DataAvailable)
{
netStream.Read(buffer, 0, 1024);
bufferTotal.AddRange(buffer);
}
iep = (IPEndPoint)tcpRecivceClient.Client.RemoteEndPoint; tcpRecivceClient.Close();
netStream.Close();
string receive = System.Text.Encoding.UTF8.GetString(bufferTotal.ToArray());
_owner.Invoke(GetTcpMessage, new object[] { iep, receive });
}
}
tcpListener.Stop();
}