堵塞模式

1、tcp服务端
socket初始化:socket
bind ip地址,端口信息
listen 启用监听
accept:等待连接
send,recv数据

2、tcp客户端
socket初始化 socket
connect服务端:ip地址,端口信息
send,recv数据

3、udp服务端
与tcp服务度类似,不存在accept等待连接的过程,直接recvfrom数据

4、udp客户端
socket初始化socket
sendto:服务端ip,端口信息

select模式

1、tcp服务端
socket初始化 socket
bind ip地址,端口信息
listen 启用监听
select:等待建立连接,接收数据等事件,最多可以绑定64个socket
收到建立连接请求,调用::accept接收连接信息
收到数据,调用recv

2、tcp客户端
与堵塞模式客户端一样

WSAAsyncSelect模式

该模式是将网络事件以消息的方式发送给对应窗口句柄
1、tcp服务端
socket初始化:socket
bind ip地址,端口信息
WSAAsyncSelect:将socket绑定到对应的HWND上,并且指定发送的消息号
listen 启用监听
WindowProc:处理对应窗口消息

WSAEventSelect模式

与WSAAsyn模式类似,但是是Event对象,通过WaitFor实现,不是通过窗口消息实现的
该模式是将网络事件以消息的方式发送给对应窗口句柄
1、tcp服务端
socket初始化:socket
bind ip地址,端口信息
listen 启用监听

WSACreateEvent创建一个事件
WSAEventSelect,将事件与socket绑定
WSAWaitForMultipleEvents等待事件

类型也一样
FD_ACCEPT,FD_CLOSE等

windows网络编程-几种模式相关推荐

  1. windows socket编程五种模型

    客户端:创建套接字,连接服务器,然后不停的发送和接收数据. 比较容易想到的一种服务器模型就是采用一个主线程,负责监听客户端的连接请求,当接收到某个客户端的连接请求后,创建一个专门用于和该客户端通信的套 ...

  2. Windows网络编程(一)基础

    Table of Contents 准备工作 socket C/S模式 源代码 服务端 客户端 源码分析 数据传输 关闭连接 符号解释 WSAStartup sin_family sin_port i ...

  3. Qt:Qt实现Winsock网络编程—非阻塞模式下的简单远程控制的开发(WSAAsyncSelect)

    Qt实现Winsock网络编程-非阻塞模式下的简单远程控制的开发(WSAAsyncSelect) 前言 这边博客应该是 Qt实现Winsock网络编程-TCP服务端和客户端通信(多线程) 的姐妹篇,上 ...

  4. windows网络编程——telnet协议

     1.windows网络编程--telnet协议 Telnet是最老的Internet应用,起源于1969年的ARPANET,名字是"电信网络协议(TelecommuicationNetwo ...

  5. Windows 网络编程

    欢迎访问我的博客首页. Windows 网络编程 1. 交替收发 1.1 客户端 1.2 服务器 2. 粘包问题 2.1 客户端 2.2 服务器 3. 双工通信 4. 附录 4.1 Java 中 in ...

  6. c++ windows网络编程--udpSocket之recfrom()函数阻塞问题

    在windows网络编程中,创建udp socket,然后调用recfrom()函数进行数据接收,发现当没有数据发送来时,会一直阻塞在recfrom()里面.为了避免因阻塞而占用CPU资源,所以不能一 ...

  7. Windows网络编程入门:简单的客户端和服务器通信程序调试

    昨日入手Windows网络编程经络这本书,第一章给了Echo客户端和服务器的简单通信实例程序.从小白到入门目测都是比较苦逼,居然想不到怎么来测试结果.什么同时运行啊.分别编译运行啊乱七八糟的想法就开始 ...

  8. 《Windows网络编程案例教程》-董相志 学习记录 阻塞/非阻塞套接字编程

    <Windows网络编程案例教程>-董相志 学习记录 阻塞/非阻塞套接字编程 2.3 阻塞/非阻塞套接字编程 阻塞套接字编程通信流程图 2.3.1 阻塞套接字客户机编程 1.启动并初始化W ...

  9. 十年一遇的奇葩故障--Windows网络编程接口故障:telnet显示无法加载或初始化请求的服务提供程序...

    现象:某同事的笔记本win7x64系统,当初故障是无法使用小乌龟连接到svn服务器,但又可以正常上网,并且svn服务器端是正常的. 后来我进一步测试,发觉该电脑也不能连接到远程windows. net ...

  10. Windows网络编程案例教程-董相志 学习记录 第一个网络程序hostent

    <Windows网络编程案例教程>-董相志 学习记录 第一个网络程序hostent 第一章 网络编程概述 1.3.5第一个网络程序--hostent 对主机的名称和地址解析 WinSock ...

最新文章

  1. python2.0正式发布时间_终于来了!!Pyston v2.0 发布,解决 Python 慢速的救星
  2. cocos2d JS 自定义事件分发器(接收与传递数据) eventManager
  3. 【数据清洗】yolo标注补全 生成空的标注txt文件
  4. linux6.4 vnc安装与配置,Oracle Enterprise Linux 6.4 下配置vncserver
  5. 一文入门基于三维数据的深度学习
  6. java php serialize_PHP serialize 和 JSON 解析与区别
  7. Machine Learning Mastery 博客文章翻译:XGBoost
  8. UI设计素材|社交界面模板
  9. 推荐系统有什么危害?
  10. 在DOS下如何加载SATA光驱驱动
  11. UVA11040 Add bricks in the wall【数学】
  12. 深入浅出mysql_深入浅出mysql索引
  13. 【Altium Designer】:关于原理图绘制的基本学习
  14. 小米4 win10 刷回android,小米4怎么从Win10刷回miui7
  15. 进程同步机制四大基本准则
  16. 胃与十二指肠溃疡的食疗方
  17. 在Linux中安装Pentaho Server 9.1并使用MySQL作为存储库
  18. office产品处于非活动状态——word无法修改
  19. 项目总结之词法分析器
  20. 离线翻译软件【免费电脑版】

热门文章

  1. Davids阅读笔记:《Redis设计与实现》
  2. 欧姆龙CP1E PLC
  3. 今天第72个儿童节,程序猿“童”样精彩~
  4. 与孩子一起学编程01章
  5. 《集体智慧编程》学习笔记001
  6. 卸载mySQL数据库
  7. 合成器插件Sylenth1 2.2.1绿化版亲测有效
  8. IDEA 切换黑色主题
  9. JAVA后端开发浅谈
  10. 如何用公式编辑器打长等号