C++ Socket Demo

来源:互联网 发布:iis配置php 编辑:程序博客网 时间:2024/04/28 01:26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// FileName: Server.cpp
  
 // 服务器端
  
 #include<stdio.h>
 #include<winsock.h>
 #include<windows.h>
 #pragma comment(lib,"ws2_32")
  
 #define PORT 2012
 #define IP "127.0.0.1"
  
 voidmain()
 {
     // 0.初始化
     WSADATA wsaData;
     WSAStartup(0x0202, &wsaData);
      
     // 1.创建Socket
     SOCKET sockServer;
     sockServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
      
     // 2.绑定Socket
     structsockaddr_in sockaddrServer;
     sockaddrServer.sin_family = AF_INET;
     sockaddrServer.sin_addr.S_un.S_addr = inet_addr(IP);
     sockaddrServer.sin_port = htons(PORT);
     memset(sockaddrServer.sin_zero, 0x00, 8);
     bind(sockServer, (structsockaddr*)&sockaddrServer, sizeof(sockaddrServer));
      
     // 3.监听
     listen(sockServer, 0);
  
     // 4.接受连接
     structsockaddr_in sockaddrClient; // 用于存放客户端地址信息
     intaddrlen = sizeof(sockaddrClient);
     SOCKET sockClient = accept(sockServer, (structsockaddr*)&sockaddrClient, &addrlen);
     printf("IP: %s\n", inet_ntoa(sockaddrClient.sin_addr));
     printf("PORT: %d\n", ntohs(sockaddrClient.sin_port));
  
     // 5.recv
     charbuf[64] = {0};
     recv(sockClient, buf, 64, 0);
     printf("Recv buf = %s\n", buf);
     // 6.关闭Socket
     closesocket(sockServer);
     // 7.释放资源
     WSACleanup();
 }

 

1.客户端代码:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// FileName: Client.cpp
  
 // 客户端
  
 #include<stdio.h>
 #include<winsock.h>
 #pragma comment(lib, "ws2_32")
  
 #define IP "127.0.0.1"
 #define PORT 2012
 voidmain()
 {
     // 0.初始化
     WSADATA wsaData;
     WSAStartup(0x0202, &wsaData);
  
     // 1.绑定Socket
     SOCKET sockServer= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    
     // 2.连接Socket
     structsockaddr_in sockaddrServer;
     sockaddrServer.sin_family = AF_INET;
     sockaddrServer.sin_addr.S_un.S_addr = inet_addr(IP);
     sockaddrServer.sin_port = htons(2012);
     memset(sockaddrServer.sin_zero, 0x00, 8);
     connect(sockServer, (structsockaddr*)&sockaddrServer, sizeof(sockaddrServer));
    
     // 3.send
     send(sockServer,"helloworld", strlen("helloworld"), 0);
     
     // 4.关闭Socket
     closesocket(sockServer);
     
     // 5.释放资源
     WSACleanup();
 }
0 0
原创粉丝点击