求 C# 监听端口程序源码。能调试通就行

jiangqinggao 2009-07-14 03:13:54
求 C# 监听端口程序源码。能调试通就行


C# 一台机器监听一个端口,。这样有 几台机器不停向他固定ip 固定端口传输数据,
得到数据就行。

最好提供客户端和 服务端 源码。。。谢谢。。。
...全文
1277 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sufon 2010-03-13
  • 打赏
  • 举报
回复
你程序有错误吧,循环里把socket.Close(); 了,循环还有效吗?第二次 int receiveCount = socket.Receive(buffer); 如果第一次没有监听到有效连接,还能执行吗?
alibabaqq123 2009-10-21
  • 打赏
  • 举报
回复
怎么监听一个特定的端口啊?比如25端口!
deams 2009-08-20
  • 打赏
  • 举报
回复
有兴趣了解
jiangqinggao 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wdgphc 的回复:]
UDP,TCP都可以。TCP可以建立一个数组,监听到一个就再打开一个监听,端口可相同。
[/Quote]

刚搞 通信这块,。。 不是很明白。
本人 qq 。。 17286375 谢谢,,
wdgphc 2009-07-22
  • 打赏
  • 举报
回复
UDP,TCP都可以。TCP可以建立一个数组,监听到一个就再打开一个监听,端口可相同。
  • 打赏
  • 举报
回复
接收单播的UDP
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
{
}
}
}
zhouzangood 2009-07-21
  • 打赏
  • 举报
回复
up
jiangqinggao 2009-07-21
  • 打赏
  • 举报
回复
UDPListener 能给个 完整的工程吗?
  • 打赏
  • 举报
回复
我的理解是一个TCP端口一次只能有一个连接。
是否可以考虑使用UDPListener
jiangqinggao 2009-07-21
  • 打赏
  • 举报
回复
string ClientIp = "127.0.0.1";
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台)第二台就不能成功发送数据。
救命救命救命救命救命救命救命救命救命救命
jiangqinggao 2009-07-14
  • 打赏
  • 举报
回复
麻烦 发我下。。我调试下看看。

我qq 41273643
laser_1987 2009-07-14
  • 打赏
  • 举报
回复
我刚写一个,正在处理问题中
jiangqinggao 2009-07-14
  • 打赏
  • 举报
回复
没看到呀, 你有现成的工程吗? 谢谢 小弟分不多。
LQknife 2009-07-14
  • 打赏
  • 举报
回复
msdn有现成的

111,094

社区成员

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

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

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