学习的时候,在网上找了好久,但是都没找到满意的。自己会了,写一个可以运行的吧!
memset(&pPer_IO_Data->overlapped,0,sizeof(pPer_IO_Data->overlapped));
这一句非常重要,因为开始几次没有写这句话,老是出现问题,而且还找不到原因,查了好多的资料,总算是解决了!!
也希望大家能避免这个问题!
#include <WINSOCK2.H>
#include <windows.h>
#include <iostream>
#include <basetsd.h>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
#define BUFFER_SIZE 4096
#define PORT 12345
#define OP_READ 1
#define OP_WRITE 2
#define OP_ACCEPT 3
static int index=0;
HANDLE hCompletion;
typedef struct _PER_HANDLE_DATA
{
SOCKET sock;
sockaddr_in si;
}PER_HANDLE_DATA,*PPER_HANDLE_DATA;
typedef struct _PER_IO_DATA
{
OVERLAPPED overlapped;
WSABUF wsabuf;
char buffer[BUFFER_SIZE];
int operationType;
}PER_IO_DATA,*PPER_IO_DATA;
DWORD WINAPI ServerThrea