socket 编程之TCP服务端与客户端

服务端 

<pre name="code" class="cpp">#include <WinSock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
//注意windows.h要放在最后
#pragma comment (lib,"Ws2_32.lib")
#pragma comment (lib,"Mswsock.lib")
#pragma comment (lib,"AdvApi32.lib")

int _cdecl main(int argc,char * argv[])
{
      WORD wVersionRequest;
	  WSADATA wsaData;
	  int err;

	  wVersionRequest=MAKEWORD(2,2);
	  err=WSAStartup(wVersionRequest,&wsaData);
	  if(err!=0)
		  return 1;
	  if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2)
	  {
		  WSACleanup();
	    return 1;
	  }

	  SOCKET sockListen=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

	  SOCKADDR_IN addrSvr;
	  addrSvr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
	  addrSvr.sin_family=AF_INET;
	  addrSvr.sin_port=htons(6000);
      
	  bind(sockListen,(SOCKADDR *)&addrSvr,sizeof(SOCKADDR));
	  listen(sockListen,5);
	  
	 
	  SOCKADDR_IN addrClient;
	  int len=sizeof(SOCKADDR_IN);
	   SOCKET sockClient=accept(sockListen,(SOCKADDR *)&addrClient,&len);
	  while(1)
	  {
		 
		  char sendBuf[100];
		   printf("notebook: \n");
		  gets(sendBuf);
		 
		  send(sockClient,sendBuf,strlen(sendBuf)+1,0);
          char recvBuf[100];
		  recv(sockClient,recvBuf,100,0);
		  printf("PC: \n  %s \n",recvBuf);
		


	  
	  }
	    closesocket(sockClient);
		return 0;

}

 



客户端

<pre name="code" class="cpp">#include <WinSock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#pragma comment (lib,"Ws2_32.lib")

int _cdecl main(int argc,char * argv[])
{
      WORD wVersionRequest;
	  WSADATA wsaData;
	  int err;

	  wVersionRequest=MAKEWORD(2,2);
	  err=WSAStartup(wVersionRequest,&wsaData);
	  if(err!=0)
		  return 1;
	  if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2)
	  {
		  WSACleanup();
	    return 1;
	  }
      
	  SOCKET sockClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
	  SOCKADDR_IN addrSvr;
	  addrSvr.sin_family=AF_INET;
	  addrSvr.sin_port=htons(6000);
	  addrSvr.sin_addr.S_un.S_addr=inet_addr("192.168.0.113");

	  err=connect(sockClient,(sockaddr *)&addrSvr,sizeof(SOCKADDR));
	  if(err==SOCKET_ERROR)
		  return 1;
	  while(1)                                                                                                                                                                                                                                                   
	  {
	  char recvBuf[100];
	  memset(recvBuf,0,sizeof(recvBuf));
	  recv(sockClient,recvBuf,100,0);
	  printf(" notebook: \n  %s \n",recvBuf);
	  char sendBuf[100];
	   printf(" PC: \n");
	  gets(sendBuf);
	 
	  send(sockClient,sendBuf,strlen(sendBuf)+1,0);
	 
	  }
	   closesocket(sockClient);
	  WSACleanup();
		return 0;

}


 

 注意 服务端的ip地址为 
192.168.0.150



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值