简单的TCPIP 客户端 服务器

 1 // soClient.cpp : Defines the entry point for the console application.
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <winsock2.h>
 6 #pragma comment(lib,"ws2_32.lib")
 7 
 8 int _tmain(int argc, _TCHAR* argv[])
 9 {
10     WSADATA wsadata;
11     WORD dVer=MAKEWORD(2,2);
12     WSAStartup(dVer,&wsadata);
13 
14     SOCKET S=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
15     if(S==INVALID_SOCKET)
16     {
17         return FALSE;
18     }
19     sockaddr_in serverAddr;
20     serverAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
21     serverAddr.sin_family=AF_INET;
22     serverAddr.sin_port=htons(4567);
23     if(::connect(S,(LPSOCKADDR)&serverAddr,sizeof(serverAddr))==SOCKET_ERROR)
24     {
25         if(WSAGetLastError()==10061)
26         {
27             printf("服务器未开启");
28         }
29         return FALSE;
30     }
31 
32     char buff[256];
33     int irecv=::recv(S,buff,256,0);
34     if(irecv>0)
35     {
36         buff[irecv] = '';  //返回数据不会结束所以人工添加
37         printf("返回数据为:%s",buff);
38     }
39     
40     closesocket(S);
41     return 0;
42 }

 服务器

 1 // soServer.cpp : Defines the entry point for the console application.
 2 //
 3 
 4 #include "stdafx.h"
 5 #include "winsock2.h"
 6 #pragma comment(lib,"ws2_32.lib")
 7 
 8 int _tmain(int argc, _TCHAR* argv[])
 9 {
10     WSADATA wsadata;
11     WORD dVer=MAKEWORD(2,2);
12     if(WSAStartup(dVer,&wsadata)!=0)
13     {
14         return FALSE;
15     }
16 
17     sockaddr_in sin;
18     sin.sin_family=AF_INET;
19     sin.sin_addr.S_un.S_addr=INADDR_ANY;
20     sin.sin_port=htons(4567);
21     SOCKET S=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
22     
23 
24     if(::bind(S,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR)
25     {
26         return FALSE;
27     }
28 
29     if(::listen(S,2)==SOCKET_ERROR)
30     {
31         return FALSE;
32     }
33 
34     sockaddr_in remoteAddr; 
35     int nAddrLen = sizeof(remoteAddr);
36     SOCKET sClient;
37     char text[]="you have connected!welcome!";
38     printf("等待接受连接。
");
39     while(TRUE)
40     {
41         sClient=::accept(S,(LPSOCKADDR)&remoteAddr,&nAddrLen);
42         if(sClient==SOCKET_ERROR)
43         {
44             printf("获取失败");
45             continue;
46         }
47         printf("接收到新连接:%s",inet_ntoa(remoteAddr.sin_addr));
48         send(sClient,text,strlen(text),0);
49         closesocket(sClient);
50     }
51     closesocket(S);
52     return 0;
53 }
原文地址:https://www.cnblogs.com/Browneyes/p/4962406.html