Visual c++网络通信编程笔记
2012-02-27 21:23
274 查看
1 . winsock有两个版本是winsock1.1和winsock2.0
2. CAsyncSocket和CSocket是MFC类库中的两个类,CAsyncSocket是CSocket的父类。
3. winsock属于传输层也网络层
4. 学会使用这一技巧struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;
5. SOCKET accept( SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen );
参数说明:s:监听的套接字描述符。
addr:指向结构体sockaddr的指针。
addrlen:addr参数指向的内存空间的长度。
accept()在接收到连接请求后,会为这个连接建立一个新的Socket来于对方通信,并把它作为返回值。
新建的Socket于原来的Socket有相同的特性,包括端口号。原来的Socket被释放,用于继续等待其他的连接
请求。而新生成的Socket才是与客户端进行通信的实际Socket。所以一般讲参数中的SOCKET称作“监听”Socket
,它只负责接受连接,而不负责通话;而对于accept函数返回的SOCKET,把它称作“会话”Socket,它只负责与客户端通话。
参数中的addr和addrlen 用来返回客户机的sockaddr_in结构体,通过addr可得到客户机的IP地址和连接端口。
2. CAsyncSocket和CSocket是MFC类库中的两个类,CAsyncSocket是CSocket的父类。
3. winsock属于传输层也网络层
4. 学会使用这一技巧struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;
5. SOCKET accept( SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen );
参数说明:s:监听的套接字描述符。
addr:指向结构体sockaddr的指针。
addrlen:addr参数指向的内存空间的长度。
accept()在接收到连接请求后,会为这个连接建立一个新的Socket来于对方通信,并把它作为返回值。
新建的Socket于原来的Socket有相同的特性,包括端口号。原来的Socket被释放,用于继续等待其他的连接
请求。而新生成的Socket才是与客户端进行通信的实际Socket。所以一般讲参数中的SOCKET称作“监听”Socket
,它只负责接受连接,而不负责通话;而对于accept函数返回的SOCKET,把它称作“会话”Socket,它只负责与客户端通话。
参数中的addr和addrlen 用来返回客户机的sockaddr_in结构体,通过addr可得到客户机的IP地址和连接端口。
相关文章推荐
- Linux环境编程--网络通信socket编程笔记
- 网络通信编程笔记(二):pcap库使用
- Java基础知识强化之网络编程笔记23:Android网络通信之 Volley(Google开源网络通信库)
- Java基础知识强化之网络编程笔记24:Android网络通信之 AndroidAsync(基于nio的异步通信库)
- Java基础知识强化之网络编程笔记15:Android网络通信之 Android异步任务处理(AsyncTask使用)
- 网络通信编程笔记(三):libnet库使用
- Visual C++ 网络编程 笔记
- ACE网络编程笔记(1):ACE自适配通信环境
- Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
- ACE网络编程笔记(1):ACE自适配通信环境
- ACE网络编程笔记(2):IPC SAP、ACE_SOCKET和TCP/IP通信实例
- Java基础知识强化之网络编程笔记21:Android网络通信之 Android常用OAuth登录(获取令牌信息)
- Java基础知识强化之网络编程笔记02:Socket通信原理图解
- 【转】ACE网络编程笔记(1):ACE自适配通信环境
- 网络编程 笔记(二) 基于 Windows简单通信
- 网络通信编程笔记(一):UDP编程(C语言)
- Java基础知识强化之网络编程笔记22:Android网络通信之 Android常用OAuth登录(获取个人信息)
- Linux程序设计学习笔记----网络通信编程API及其示例应用
- Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)
- Java网络编程学习笔记(4)非阻塞通信