(急)我用TcpServer和TcpClient写了一个服务器端和一个客户端,请问为什么不能在单机上连接呢?

Harryfin 2006-06-09 04:52:01
listener(TcpServer)的构造函数是:
IPAddress ipAddress = Dns.Resolve(Dns.GetHostName()).AddressList[0];
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 9645);
this.listener = new TcpListener(ipLocalEndPoint);

--------------------------------------------------------------------------------

Monitor(TcpClient)的构造函数是:
Monitor=new TcpClient(); //自己识别IP和寻找最适合的端口

--------------------------------------------------------------------------------

客户端连接服务器端的相关代码:
IPAddress serverIP=Dns.Resolve(<服务器的IP或机器名>).AddressList[0];
IPEndPoint serverEndPoint=new IPEndPoint(serverIP, 9645);
Monitor.Connect(serverEndPoint);

在不同的机器上可以连接,但是为什么在单机上就不能连呢?有什么办法让他们在单机上连接呢?
...全文
298 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Samen168 2007-01-19
  • 打赏
  • 举报
回复
客户端端口用动态的吧
Hasen 2007-01-19
  • 打赏
  • 举报
回复
经过测试,发现如果你的server用的是127.0.0.1:8006监听,那么你的客户端用127.0.0.1:8006 CONNECT就是OK的。

不过不明白为什么server用192.168.0.3:8006侦听,client用127.0.0.1:8006却连不上?哪位仁兄知道?
Hasen 2007-01-19
  • 打赏
  • 举报
回复
是的。我也遇到了这个问题。

我用127.0.0.1:8006不行。用192.168.0.3:8006就OK了。

不是楼上说的端口的问题。
阿浩No_1 2006-06-11
  • 打赏
  • 举报
回复
xuexi
Harryfin 2006-06-11
  • 打赏
  • 举报
回复
解决了,问题在填TcpClient.Connect里的ServerIP时,要填Server的实IP,不能再用回127.0.0.1(或Localhost)

TcpClient的构造函数用的是默认的,会自己分配一个没用过的,不是Port的问题.
Harryfin 2006-06-10
  • 打赏
  • 举报
回复
最下面的那段是连接到服务器的代码,那当然要写服务器的port吧.
laidon 2006-06-10
  • 打赏
  • 举报
回复

IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 9645);


IPEndPoint serverEndPoint=new IPEndPoint(serverIP, 9646);

----------------------------
如上就可以了
exing 2006-06-10
  • 打赏
  • 举报
回复
sever和client用了同一个端口,怎么能工作

不同机器则不存在这个问题
Harryfin 2006-06-10
  • 打赏
  • 举报
回复
请问这是为什么呢? 谢谢

110,533

社区成员

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

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

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