C++ Socket通信

服务器端:

#include <stdio.h>
#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{   
	WORD dwVersionRequested;
	WSADATA wsaData;
	int err;
	dwVersionRequested = MAKEWORD(1,1);
	err = WSAStartup(dwVersionRequested,&wsaData);
        if (err != 0) return;
	if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
	{
		WSACleanup();
		return;
	}
       SOCKET socketSvr = socket(AF_INET,SOCK_STREAM,0);
	SOCKADDR_IN addSvr;
	addSvr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
	addSvr.sin_family = AF_INET;
	addSvr.sin_port = htons(6000);
	bind(socketSvr,(SOCKADDR*)&addSvr,sizeof(SOCKADDR));
	listen(socketSvr,5);
	SOCKADDR_IN addrClient;
	int len = sizeof(SOCKADDR);
	while(1)
	{
		SOCKET sockConn = accept(socketSvr,(SOCKADDR*)&addrClient,&len);
		char sendbuf[50];
		sprintf(sendbuf,"Where Come  %s To Here From Server",inet_ntoa(addrClient.sin_addr));//把字符串放到sendbuf
		send(sockConn,sendbuf,strlen(sendbuf)+1,0);
		char recvbuf[50];
		recv(sockConn,recvbuf,50,0);             
		printf("%s\n",recvbuf);
		closesocket(sockConn);
		Sleep(5000);
	}
}

客户端:

#include <stdio.h>
#include <WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
	while(1)
	{
		WORD dwVersionRequested;
		WSADATA wsaData;
		int err;
		dwVersionRequested = MAKEWORD(1,1);
		err = WSAStartup(dwVersionRequested,&wsaData);
		if (err != 0) return;
		if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
		{
			WSACleanup();
			return;
		}
		SOCKET sockClient = socket(AF_INET,SOCK_STREAM,0);
		SOCKADDR_IN addrSvr;
		addrSvr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
		addrSvr.sin_family = AF_INET;
		addrSvr.sin_port = htons(6000);
		connect(sockClient,(SOCKADDR*)&addrSvr,sizeof(SOCKADDR));
		char sendbuf[50] = "Come on xxx From Client";
		send(sockClient,sendbuf,sizeof(sendbuf)+1,0);
		char recvbuf[50];
		recv(sockClient,recvbuf,50,0);
		printf("%s\n",recvbuf);
		closesocket(sockClient);
		WSACleanup();
		Sleep(5000);
	}
} 



posted @   Maguyusi  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示