C++ Socket 网络编程

过程:

C++ Socket 网络编程_第1张图片


入门级的测试程序

1、客户端代码

#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib,"ws2_32.lib")

/**
 *TCP 客户端
 */
void main(void){

	/*加载套接字库---开始*/
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;

	wVersionRequested=MAKEWORD(1,1);

	err=WSAStartup(wVersionRequested,&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 addrSrv;//定义一个服务器地址结构
	addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//绑定服务器IP地址
	addrSrv.sin_family=AF_INET;
	addrSrv.sin_port=htons(6000);//与服务器端绑定的端口号保持一致。

	connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//向服务器发送请求

	char recvBuf[100];
	recv(sockClient,recvBuf,100,0);//接收服务器端发送过来的数据
	printf("%s\n",recvBuf);

	send(sockClient,"welcomeA",strlen("welcomeA")+1,0);//向服务器端发送数据
	
	closesocket(sockClient);

	WSACleanup();

}


2、服务器端代码

#include <Winsock2.h>
#include <stdio.h>

#pragma comment(lib, "ws2_32.lib")


/**
 *TCP socket Server
 */
int main(){
	
	/*加载套接字库---开始*/
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;

	wVersionRequested=MAKEWORD(1,1);

	err=WSAStartup(wVersionRequested,&wsaData);
	if(err!=0){
		return 1;
	}

	if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){
		WSACleanup();
		return 2;
	}
	/*加载套接字库---结束*/



	//创建服务器端 socket
	SOCKET socketSrv=socket(AF_INET,SOCK_STREAM,0);

	SOCKADDR_IN addrSrv;//socket 服务端地址结构
	addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//网络字节序转换
	addrSrv.sin_family=AF_INET;
	addrSrv.sin_port=htons(6000);
    
	//绑定创建 的socket 
	bind(socketSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

	//将套节字设置为监听模式
	listen(socketSrv,5);


	SOCKADDR_IN addrClient;//客户端地址结构,用来接收客户端的地址信息
	int len=sizeof(SOCKADDR);


	//死循环
	while(1){
		SOCKET sockConn=accept(socketSrv,(SOCKADDR*)&addrClient,&len);// 接受客户端连接,获取客户端的ip地址
		char sendBuf[120];
		sprintf(sendBuf,"welcome");
		send(sockConn,sendBuf,sizeof(sendBuf)+1,0);//发送welcome到客户端
		char recvBuf[100];
		recv(sockConn,recvBuf,100,0);//接收客户端发来的数据
		printf("%s\n",recvBuf);
		closesocket(sockConn);
	}

	return 0;
}



不错的入门介绍

你可能感兴趣的:(C++,socket)