用WinSocket2 API进行通讯的问题(初级)!

LoseWorld 2001-12-07 03:27:35
必须要写一个死循环检查是否有网络发生吗?是否有事件驱动的机制?
程序结构可以象下面的一样吗?
列:

winmain()
{

程序启动
创建Socket
注册网络事件
for ()
{
检测是否有事件发生(FD_READ || FD_WRITE || FD_CLOSE
swich()
{
做相应处理
}
Sleep() 休息一下在去检测
}

注销网络事件
Close Socket
退出程序
}

请高手多指教!另外这样没一个Socket都来一个循环,会不会太浪费资源,是否有事件驱动机制?

...全文
261 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
childe_ch 2002-03-11
  • 打赏
  • 举报
回复
能够提供一个比较完整的例子吗?最好是实际应用过的。
我的email:xianglin_chen@msn.com
fly2skylee 2002-01-22
  • 打赏
  • 举报
回复
select怎么用,有例子吗?
LoseWorld 2001-12-28
  • 打赏
  • 举报
回复
按时打发士大夫
LoseWorld 2001-12-28
  • 打赏
  • 举报
回复
给各位记分
LoseWorld 2001-12-28
  • 打赏
  • 举报
回复
给分
夭夭 2001-12-16
  • 打赏
  • 举报
回复
WSAAsyncSelect或者可以用事件
LoseWorld 2001-12-16
  • 打赏
  • 举报
回复
明白了,Select 函数实际是工作在阻塞模式下,在该模式下直到选定的事件发生,否则Select 函数是不会返回的。
dash 2001-12-15
  • 打赏
  • 举报
回复
to loseworld:
我也初学,我认为select函数是工作在阻塞模式
若在windows下,为何不用WSAAsyncSelect?
ComXP 2001-12-15
  • 打赏
  • 举报
回复
可以用 IOCompletePort + Thread pool 来管理所有的socket通信,这是Windows下最好的SocketI/O模型。
cmpp 2001-12-15
  • 打赏
  • 举报
回复
我来学习一下!
LoseWorld 2001-12-10
  • 打赏
  • 举报
回复
多谢大家,不过小弟还有一个问题:

select函数是工作在阻塞模式吗?比如我调用了select函数但在该socket上什么也没有发生,select函数会立即返回吗?但如果是立即返回,那我怎么知道数据什么时候到达,那还是得用
一个循环来检测啊?


舟中夜起 2001-12-09
  • 打赏
  • 举报
回复
你的消息循环呢?
GetMessage
TranslateMessage
DispatchMessage
unkill 2001-12-09
  • 打赏
  • 举报
回复
同步socket,当你进行一次recv or send 操作,由于某种原因(例如,数据未到达),程序会阻塞在
那里.导致其他操作不能进行下去.
异步socket,程序不会阻塞,recv会立即返回(可能会是失败),等真正数据到达后,再通过某种机制
通知你.
cmpp 2001-12-09
  • 打赏
  • 举报
回复
我来学习一下!
cmpp 2001-12-09
  • 打赏
  • 举报
回复
我来学习一下!
Jefers 2001-12-09
  • 打赏
  • 举报
回复
开一个线程,所有的接收也发送都阻塞在Select.
2ndboy 2001-12-09
  • 打赏
  • 举报
回复
用WSAAsyncSelect()
当然你要产生个窗口出来
自由的风 2001-12-07
  • 打赏
  • 举报
回复
sorry.
这个概念倒是不太清楚了,
LoseWorld 2001-12-07
  • 打赏
  • 举报
回复
请问:风之克利斯
异步Socket和同步Socket的区别?
zzh 2001-12-07
  • 打赏
  • 举报
回复
通过消息来产生,需不用自己去检查事件,使用WSAAsyncSelect注册了事件后,当有数据到达,会发生FD_READ消息,只要处理这个消息就可以了。现样,FD_WRITE,FD_CLOSE等也一样。
加载更多回复(2)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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