【网络基础】

简单的五步客服端

第一步 初始化

WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData)

第二步 创建可与服务器连接的通道

SOCKET socketConnect = socket(AF_INET, SOCK_STREAM, 0);
if(socketConnect == INVALID_SOCKET)
{
printf(“socket() failed \n”);
WSACleanup();
return;
}

第三步 连接服务器

sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( “IP 地址”);
clientService.sin_port = htons(5000);

if (connect(socketConnect, (SOCKADDR*)&clientService, sizeof(clientService)) != 0)
{
MessageBox(NULL, “connect() failed!”, “Error”, MB_OK);
WSACleanup();
return;
}

第四步 接收、发送信息 recv/send

第五步 关闭通道 closesocket

简单的七步服务器

第一步 初始化

WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData)

第二步 创建侦听客户端连接的通道

SOCKET listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(listenSocket == INVALID_SOCKET)
{
printf(“socket() failed \n”);
WSACleanup();
return;
}

第三步 将侦听通道与ip绑定

sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr(“127.0.0.1”);
service.sin_port = htons(27015);
int iResult = bind(ListenSocket, (SOCKADDR *) & service, sizeof (service));
if (iResult == SOCKET_ERROR) {
wprintf(L"bind function failed with error %d\n", WSAGetLastError());
iResult = closesocket(ListenSocket);
if (iResult == SOCKET_ERROR)
wprintf(L"closesocket function failed with error %d\n", WSAGetLastError());
WSACleanup();
return ;
}

第四步 通道创建了,绑定了,可以侦听客户端的连接了

if (listen(ListenSocket, SOMAXCONN) == SOCKET_ERROR) {
wprintf(L"listen function failed with error: %d\n", WSAGetLastError());
}

第五步 获取来自客户端的连接通道

accept 函数提取套接字上挂起连接队列中的第一个连接。 然后,它会创建并返回新套接字的句柄.
成功完成 接受 后返回新的套接字句柄后,接受的套接字不能用于接受更多连接。
原始套接字保持打开状态,侦听新的连接请求
SOCKET acceptSocket = accept(listenSocket, NULL, NULL);
if (AcceptSocket == INVALID_SOCKET) {
wprintf(L"accept failed with error: %ld\n", WSAGetLastError());
closesocket(ListenSocket);
WSACleanup();
return 1;
} else {
wprintf(L"Client connected.\n");
}

第六步 知道了客户端的连接通道,针对该通道接收和发送数据 recv/send

char szBuf[2048] = “”;
recv(acceptSocket , szBuf, sizeof(CHATPACK), 0);
send(acceptSocket , (char *)nEvent, sizeof(int), 0);

第七步 断开连接

closesocket(acceptSocket );
closesocket(listenSocket);
WSACleanup();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值