求 C# 监听端口程序源码。能调试通就行
C# 一台机器监听一个端口,。这样有 几台机器不停向他固定ip 固定端口传输数据,
得到数据就行。 最好提供客户端和 服务端 源码谢谢
C# 一台机器监听一个端口,。这样有 几台机器不停向他固定ip 固定端口传输数据,
得到数据就行。 最好提供客户端和 服务端 源码谢谢
解决方案 »
- C#能否使用如同LabView中的“里程表”显示控件?
- margin 属性
- 请教:如果用应用程序安装CAB包
- 关于委托使用得问题
- NHibernate one-to-many lazy 延迟不成功的问题
- 如何利用sqlcommand的Parameters.add,向float的字段中插入null?
- 在C#中,有一个文本框和一个按钮,在文本框中随便输入一段代码,点击按钮时执行文本框里的代码怎么实现,帮帮忙,谢谢
- 在.NET网站页面如何实现多条件符合查询 选中多个DropDownList的值 之后在单击“查询”能够在表中搜出相对应的结果。
- c#程序运行过程中,机器内存一再在增加,求解决办法???
- 怎样得到Url中的程序名?
- 进制问题求救
- Linq 连接字符串问题
listener = new TcpListener(new IPEndPoint(IPAddress.Parse(ClientIp), 8000)); //2222端口
listener.Start(); //开始侦听端口
acceptThread = new Thread(new ThreadStart(AcceptWorkThread));
acceptThread.Start(); //接受客户端请求
/// <summary>
/// 接收、解码
/// </summary>
private void AcceptWorkThread()
{
Socket socket = listener.AcceptSocket();
byte[] buffer = new byte[1024];
while (true)
{
int receiveCount = socket.Receive(buffer);
if (receiveCount > 0)
{
string recString = Encoding.UTF8.GetString(buffer, 0, receiveCount); //解码
ShowMsg(recString);
}
else
{
socket.Close();
break;
}
}
}
现在的这个通信没问题,一台客户端连接没问题,但是多台(2台)第二台就不能成功发送数据。
救命救命救命救命救命救命救命救命救命救命
是否可以考虑使用UDPListener
UDPSingleListener ul = new UDPSingleListener ("192.168.1.123","888");
ul.OnReceiveData += ......................;
ul.StartListen();
ul.StopListen();
ul.Dispose();
public class UDPSingleListener : IDisposable
{
Thread thread;
bool IsThreadRunning = false;
int listenPort = 999;
IPAddress ip = IPAddress.Parse("127.0.0.1");
UdpClient listener = null; public UDPSingleListener(string ipaddress, int port)
{
listenPort = port;
ip = IPAddress.Parse(ipaddress);
} public void Dispose()
{
StopListen();
ip = null;
listener = null;
} public void StartListen()
{
IsThreadRunning = true;
thread = new Thread(new ThreadStart(Listener));
thread.Start();
} public void StopListen()
{
IsThreadRunning = false;
try
{
if (listener != null)
{
listener.Close();
listener = null;
}
}
catch
{
}
} public delegate void ReceiveData(byte[] bytes, string ipaddress, int port);
public event ReceiveData OnReceiveData; void Listener()
{
try
{
listener = new UdpClient(listenPort, AddressFamily.InterNetwork); IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, 0);
while (IsThreadRunning)
{
byte[] bytes = listener.Receive(ref groupEP);
if (OnReceiveData != null)
{
OnReceiveData(bytes, groupEP.Address.ToString(), groupEP.Port);
}
}
}
catch //(Exception err)
{
//MessageBox.Show(err.ToString());
//throw new Exception(err.ToString ());
}
finally
{
}
}
}