一、TCP socket通信逻辑
流程:
服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
二、一个很简单的TCP socket通信实例
服务器端:
#include <iostream>
#include<stdio.h>
#include<WinSock2.h>
#include<cstring>
#pragma comment(lib, "ws2_32.lib")
using namespace std;
/********************全局常量*********************/
const int BUF_SIZE = 2048;
/********************全局变量*********************/
SOCKET sockSer, sockCli; //socket
SOCKADDR_IN addrSer, addrCli; //address SOCKADDR_IN将sin_addr与sin_port分开,方便赋值;SOCKADDR放在一起,方便传输
int naddr = sizeof(SOCKADDR_IN);
char sendbuf[BUF_SIZE];
char inputbuf[BUF_SIZE];
char recvbuf[BUF_SIZE];
int main()
{
//加载socket库
WSADATA wsadata;
if (WSAStartup(MAKEWORD(2, 1), &wsadata