欢迎访问我的博客:konosuba.xyz
本文主要是在计算机本地使用基于TCP协议的Socket建立服务端与客户端的连接与基本通信
系统:Windows 10
软件:Visual studio 2019
语言:C++
Socket通信实现步骤
-
创建ServerSocket和Socket
-
打开连接到的Socket的输入/输出流
-
按照协议对Socket进行读/写操作
-
关闭输入/输出流和Socket
本文的程序由服务端发送信息到客户端,若用户输入quit则结束客户端与服务端程序
服务端Server
由于Windows下的socket程序依赖Winsock.dll或ws2_32.dll,所以必须提前加载
#include <iostream>
#include <string>
#include <winsock2.h> //包含socket的头文件
#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll
#pragma warning(disable:4996)
using namespace std;
int main()
{
//****初始化WSA
WSADATA wsaData;
//初始化WSAStartup()函数(规范的版本号,指向WSADATA结构体的指针),向操作系统说明要使用哪个库的文件
//->MSKEWORD(2,2)主版本号2,副版本号2
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
return 0;
}
//****创建套接字
SOCKET servSock = socket(PF_INET, SOCK_STREAM, 0);
//参数1,IP地址类型,PF_INET6->IPv6,PF_INET->IPv4
//参数2,数据传输方式,SOCK_STREAM 和 SOCK_DGRAM
//参数3,传输协议,IPPROTO_TCP 和 IPPTOTO_UDP,写0系统会自动计算处使用那种协议
//判断无效套接字
if (servSock == INVALID_SOCKET)
{
cout << <