当前位置:编程学习 > C#/ASP.NET >>

关于套接字的发送与接收问题

我想在同一个TCP套接字下实现发送和接收的功能,发送功能一直在运行,但是接收功能我只想在另一台电脑发送数据后才接收,也就是当另一台电脑发出数据后,recv函数才启用,其他时候都不启用recv函数,这该怎么实现啊?谢谢 TCP/IP --------------------编程问答-------------------- if (socket.Poll(0, SelectMode.SelectRead))
{
} --------------------编程问答-------------------- 要是我用的是C语言,里面没有这个函数应该怎么办呢?
--------------------编程问答-------------------- 程序怎么知道另一台电脑发送数据了没有呢,当然只能一直收了,
你的问题可能是收的时候没有数据会卡住,这是你的问题,得用线程,或者异步之类的方法。 --------------------编程问答-------------------- 难道没有什么信号位可以表示在接收缓冲中有数据吗? --------------------编程问答-------------------- Available属性或者DataAvailable属性。

你如何Receive信号位?Receive信号位置后立刻Receive数据对吧?Receive就是集成这两个功能的。

所以如果你阻塞在那里去看什么“信号位”,那么还不如仅写一个Receice语句。编程当然是越简单越好,只有那些抱着java书籍走火入魔的人才喜欢繁琐地去编程。

如果你不想阻塞和占用线程资源,如果你想让系统变得依赖倒置似地敏捷轻快,那么就使用 BeginReceive (或者 BeginRead),这就是系统已经写好的现成的灵敏响应“信号位”——仅在必要时才回调你的代码——的机制。 --------------------编程问答-------------------- 异步方式!!!! --------------------编程问答--------------------
Quote: 引用 5 楼 sp1234 的回复:

Available属性或者DataAvailable属性。

你如何Receive信号位?Receive信号位置后立刻Receive数据对吧?Receive就是集成这两个功能的。

所以如果你阻塞在那里去看什么“信号位”,那么还不如仅写一个Receice语句。编程当然是越简单越好,只有那些抱着java书籍走火入魔的人才喜欢繁琐地去编程。


但是如果我只能用标准的berkeley socket API来编程的话,没有beginread这个函数啊 --------------------编程问答-------------------- Available属性或者DataAvailable属性。

你如何Receive信号位?Receive信号位置后立刻Receive数据对吧?Receive就是集成这两个功能的。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,