服务器
1.初始化
WSAStartup(…)
2.创建Socket
s = Socket ( … )
3.绑定端口
ret = bind ( … )
4.监听
ret = listen ( … )
5.接收客户端的连接请求
s_new = accept ( … ) // 三次握手发生在这个过程
6.收发数据
ret = recv ( … )
// 阻塞模式, 内存不够存放发送的信息时,则阻塞send()
// 非阻塞 , 视缓冲空间大小而发送相应大的数据,不阻塞send()
ret = send ( … )
7.关闭连接
#include<WinSock2.h>
#pragma warning(disable:4996)
#pragma comment(lib,"ws2_32.lib")
#include<stdio.h>
int main(int argc, char* argv[])
{
//请求版本号
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
if (HIBYTE(wsaData.wVersion) != 2 || LOBYTE(wsaData.wVersion) != 2)
{
printf("请求版本失败!");
return -1;
}
//创建socket
SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//创建协议地址族
SOCKADDR_IN addr = { 0 };
addr.sin_family = AF_INET;
addr.sin_a