求救!!端口监听的问题!! ( 积分: 200 )

  • 主题发起人 主题发起人 lezerger
  • 开始时间 开始时间
L

lezerger

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有个服务器端和一个客户端,采用TcpClient和TcpServer进行通讯。
服务器就当做黑盒不管他。
客户端这里,我的需求是采用TcpClient发出一条消息以后,就开始监听某端口(假设固定为10000号端口)的情况,如果在一段时间(假设为5秒)内这个端口没有收到任何消息,就报错(可以任何形式,这个不重要)。
限制是:第一,不可以用Timer记时;第二,所有发送和监听都由TcpClient(或ClientSocket)完成,不可以用其他控件包括IdTcpClient。


我的困惑是:如何用TcpClient接收某端口的信息?OnReceive事件怎么都不能触发,阻塞和非阻塞都不行,而且就算OnReceive可以接收的话,计时也不好处理;TcpClient.Receiveln()不知道怎么用,也读不到消息。

本地IP和端口以及工作方式Active等等都设置过

请高手指点迷津!!
 
TCPClient可以接受信息的,用Recv方法把Client的Socket传给它就可以了,不过建议你放到线程里,因为它会阻塞
 
你可以考滤使用阻塞模式的API函数来实现这个功能
 
请说详细点可以吗?
TcpClient.Receiveln() 怎么才能收到消息呢?
 
学习 帮顶了~
 
自己解决了,这是和TCP/IP的通讯协议有关的,在一次TCP连接里TcpClient即可以通过ReanLn()向Server端发出一条信息,也可以通过Receiveln() 读取本次连接里Server端发来的信息(如果有的话),而TcpClient这边接收消息的端口号完全不用设置,因为是在一次TCP通讯里完成的,所以应该是发送端口来接收消息
 
见者给分吧。。。。
 
多人接受答案了。
 

Similar threads

后退
顶部