关于套接字的发送与接收问题
我想在同一个TCP套接字下实现发送和接收的功能,发送功能一直在运行,但是接收功能我只想在另一台电脑发送数据后才接收,也就是当另一台电脑发出数据后,recv函数才启用,其他时候都不启用recv函数,这该怎么实现啊?谢谢 TCP/IP --------------------编程问答-------------------- if (socket.Poll(0, SelectMode.SelectRead)){
} --------------------编程问答-------------------- 要是我用的是C语言,里面没有这个函数应该怎么办呢?
--------------------编程问答-------------------- 程序怎么知道另一台电脑发送数据了没有呢,当然只能一直收了,
你的问题可能是收的时候没有数据会卡住,这是你的问题,得用线程,或者异步之类的方法。 --------------------编程问答-------------------- 难道没有什么信号位可以表示在接收缓冲中有数据吗? --------------------编程问答-------------------- Available属性或者DataAvailable属性。
你如何Receive信号位?Receive信号位置后立刻Receive数据对吧?Receive就是集成这两个功能的。
所以如果你阻塞在那里去看什么“信号位”,那么还不如仅写一个Receice语句。编程当然是越简单越好,只有那些抱着java书籍走火入魔的人才喜欢繁琐地去编程。
如果你不想阻塞和占用线程资源,如果你想让系统变得依赖倒置似地敏捷轻快,那么就使用 BeginReceive (或者 BeginRead),这就是系统已经写好的现成的灵敏响应“信号位”——仅在必要时才回调你的代码——的机制。 --------------------编程问答-------------------- 异步方式!!!! --------------------编程问答--------------------