网络编程入门服务器端程序

基于TCP和控制台的服务器端代码实现。

基于TCP和控制台的服务器端代码实现。
#include 
#include 

void main()
{
	WORD wVersionRequested;
	WSADATA wsadata;
	int err;
	
	wVersionRequested=MAKEWORD(1,1);
	
	err=WSAStartup(wVersionRequested,&wsadata);//加载套接字库
	
	//对err的值进行判断
	if (err!=0)
	{
		return;
	}
	//对版本号进行判断
	if (LOBYTE(wsadata.wVersion)!=1||
		HIBYTE(wsadata.wVersion)!=1)
	{
		WSACleanup();
		return;
	}
	
	SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//创建套接字

	SOCKADDR_IN addr;//地址和端口信息
	addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
	addr.sin_family=AF_INET;
	addr.sin_port=htons(6000);

	bind(sockSrv,(SOCKADDR*)&addr,sizeof(SOCKADDR));//将套接字绑定到本地地址和端口

	listen(sockSrv,5);//侦听

	SOCKADDR_IN addrClient;
	int len=sizeof(SOCKADDR);

	while (1)
	{
		SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);//等待客户端请求
		//发送
		char sendBuf[100];
		sprintf(sendBuf,"welcome %s visit the web http://www.zhihu.com",inet_ntoa(addrClient.sin_addr));
		send(sockConn,sendBuf,strlen(sendBuf)+1,0);
		//接收
		char recvBuf[100];
		recv(sockConn,recvBuf,100,0);
		printf("%s\n",recvBuf);
		//关闭socket
		closesocket(sockConn);
	}
	//如果不是死循环,还应该WSACleanup();
}





你可能感兴趣的:(网络编程入门服务器端程序)