73ef4ff3
Hu Chunming
提交三方库
|
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#define MAX_SEN 200
#define MAX_REC 200
#define SERPORT 8000
int main(void)
{
int s_fd = -1, ret = -1;
char ser_senbuf[MAX_SEN] = "hello";
char cli_recbuf[MAX_REC];
struct sockaddr_in ser_sin = {0};
struct sockaddr_in ser_cin = {0};
socklen_t addr_len;
char ipbuf[INET_ADDRSTRLEN];
s_fd = socket(AF_INET,SOCK_DGRAM,0);
if (s_fd == -1 )
{
perror("socket");
return -1;
}
printf("s_fd = %d.\n", s_fd);
bzero(&ser_sin,sizeof(ser_sin));
ser_sin.sin_family = AF_INET;
ser_sin.sin_addr.s_addr = INADDR_ANY;
ser_sin.sin_port = htons(SERPORT);
ret = bind(s_fd, (const struct sockaddr *)&ser_sin, sizeof(ser_sin));
if (ret < 0)
{
perror("bind");
return -1;
}
printf("bind success.\n");
addr_len = sizeof(ser_cin);
ret = recvfrom(s_fd, cli_recbuf, MAX_REC, 0, (struct sockaddr *)&ser_cin, &addr_len);
printf("服务器成功接收了%d个字节\n", ret);
printf("服务器接收的内容是:%s\n", cli_recbuf);
inet_ntop(AF_INET, &ser_cin.sin_addr, ipbuf,sizeof(ipbuf));
printf("ip地址是:%s\n", ipbuf);
ret = sendto(s_fd, ser_senbuf, strlen(ser_senbuf), 0, (const struct sockaddr *)&ser_cin, addr_len);
printf("服务器成功发送了%d个字符\n", ret);
printf("服务器发送的内容是:%s\n", ser_senbuf);
return 0;
}
|