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"
void
main()
{
// 0.初始化
WSADATA wsaData;
WSAStartup(0x0202, &wsaData);
// 1.创建Socket
SOCKET sockServer;
sockServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// 2.绑定Socket
struct
sockaddr_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, (
struct
sockaddr*)&sockaddrServer,
sizeof
(sockaddrServer));
// 3.监听
listen(sockServer, 0);
// 4.接受连接
struct
sockaddr_in sockaddrClient;
// 用于存放客户端地址信息
int
addrlen =
sizeof
(sockaddrClient);
SOCKET sockClient = accept(sockServer, (
struct
sockaddr*)&sockaddrClient, &addrlen);
printf
(
"IP: %s\n"
, inet_ntoa(sockaddrClient.sin_addr));
printf
(
"PORT: %d\n"
, ntohs(sockaddrClient.sin_port));
// 5.recv
char
buf[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
void
main()
{
// 0.初始化
WSADATA wsaData;
WSAStartup(0x0202, &wsaData);
// 1.绑定Socket
SOCKET sockServer= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// 2.连接Socket
struct
sockaddr_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, (
struct
sockaddr*)&sockaddrServer,
sizeof
(sockaddrServer));
// 3.send
send(sockServer,
"helloworld"
,
strlen
(
"helloworld"
), 0);
// 4.关闭Socket
closesocket(sockServer);
// 5.释放资源
WSACleanup();
}
|