服务器:
// link with Ws2_32.lib
#pragma comment(lib,"Ws2_32.lib")
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <stdlib.h> // Needed for _wtoi
int __cdecl wmain(int argc, wchar_t **argv)
{
system("title 服务器");
// Declare and initialize variables
WSADATA wsaData = {0};
int iResult = 0;
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0)
{
wprintf(L"WSAStartup failed: %d\n", iResult);
return 1;
}
SOCKET sock = socket(AF_INET, SOCK_STREAM ,0);
if (sock == INVALID_SOCKET)
{
wprintf(L"socket function failed with error = %d\n", WSAGetLastError() );
iResult = closesocket(sock);
if (iResult == SOCKET_ERROR)
{
wprintf(L"closesocket failed with error = %d\n", WSAGetLastError() );
WSACleanup();
return 1;
}
}
sockaddr_in aSerAddr;
aSerAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
aSerAddr.sin_family = AF_INET;
aSerAddr.sin_port = htons(1989);
int iRetBind = bind(sock,(sockaddr*)&aSerAddr,sizeof(sockaddr_in));
int iRetLs = listen(sock,10);
sockaddr_in aClientAddr;
int iLen= sizeof(sockaddr_in);
SOCKET sockClient = INVALID_SOCKET;
while(1)
{
sockClient = accept(sock,(sockaddr*)&aClientAddr,&iLen);
if(sockClient!=INVALID_SOCKET)
{
printf("%s连接到服务器!\n",inet_ntoa(aClientAddr.sin_addr));
send(sockClient,"连接成功",strlen("连接成功"),0);
char buffer[100]={0};
recv(sockClient,buffer,100,0);
printf("客户端:%s",buffer);
}
}
return 0;
}
客户端:
// link with Ws2_32.lib
#pragma comment(lib,"Ws2_32.lib")
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <stdlib.h> // Needed for _wtoi
int main(int argc, wchar_t **argv)
{
system("title 客户端");
// Declare and initialize variables
WSADATA wsaData = {0};
int iResult = 0;
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0)
{
wprintf(L"WSAStartup failed: %d\n", iResult);
return 1;
}
SOCKET sock = socket(AF_INET, SOCK_STREAM ,0);
if (sock == INVALID_SOCKET)
{
wprintf(L"socket function failed with error = %d\n", WSAGetLastError() );
iResult = closesocket(sock);
if (iResult == SOCKET_ERROR)
{
wprintf(L"closesocket failed with error = %d\n", WSAGetLastError() );
WSACleanup();
return 1;
}
}
sockaddr_in aSerAddr;
aSerAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
aSerAddr.sin_family = AF_INET;
aSerAddr.sin_port = htons(1989);
int iRet = connect(sock,(sockaddr*)&aSerAddr,sizeof(sockaddr_in));
if(iRet<0)
{
printf("连接出错\n");
}
char buffer[100]={0};
recv(sock,buffer,100,0);
printf("服务器:%s",buffer);
send(sock,"我是客户端!",sizeof("我是客户端!"),0);
getchar();
return 0;
}
简单的客户端和服务器流程
最新推荐文章于 2024-01-22 15:30:00 发布