//mysocket.h #ifndef __MYSOCKET_H__ #define __MYSOCKET_H__ //头文件保护 #include<bits/stdc++.h> #include<winsock.h> #pragma comment(lib,"ws2_32.lib") using namespace std; WSADATA wsdata; void startup(){ //异步启动 if (WSAStartup(MAKEWORD(2, 2), &wsdata)) /* ^ ^ 版本号,这里用的是2.2 | 数据存放处,这里设成全局变量 */ { //返回0则成功,否则失败,报错 cout << "启动失败!\n"; WSACleanup(); exit(0); } } SOCKET createSocket(int af, int type){ /*原函数原型: SOCKET socket(int af, int type, int protocol) ^ ^ ^ 协议 类型(后文) 形式(一般用0) */ SOCKET ret = socket(af, type, 0); if (ret == INVALID_SOCKET) //错误返回INVALID_SOCKET { //报错 cout << "创建套接字失败!\n"; WSACleanup(); exit(0); } return ret; } void mysend(SOCKET s, const char* buf){ /* 带报错的send()函数,原函数原型为 : int send(SOCKET s, const char* buf, int len, int flag) 这里为了简化,省略后两个参数。 函数把buf发送给s,返回发送长度 */ int len = send(s, buf, sizeof(buf), 0); if(len < 0) //发送错误 { cout << "信息发送失败!\n"; WSACleanup(); exit(0); } } void myrecv(SOCKET s, char* buf){ /* 带报错的recv()函数,其原型为: int recv(SOCKET s, char* buf, int len, int flag) 同样省略后两个参数 函数将从s收到的信息储存在buf中,返回接收长度 */ int len = recv(s, buf, sizeof(buf), 0); if(len < 0) { cout << "信息接收失败!\n"; WSACleanup(); exit(0); } } #endif //别忘了
标签:__,wsdata,lib,MYSOCKET,include,服务端 From: https://www.cnblogs.com/hanxuyao/p/18401337