管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
) s' @5 V% u0 {0 Q#include <sys/types.h>
; k2 q; E) a' q: K; ?, A2 V/ K#include <sys/socket.h> / ^. d8 q: U, _ ^6 v/ Q k. R! E
#include <unistd.h>
. h A1 ?. R% u- ?3 b, }#include <netinet/in.h> 1 m- Z- B( ` \+ x
#include <arpa/inet.h> ( B- d) E0 v8 q- |1 x9 g; \! ~9 z% n
#include <string.h> 6 M ]! W9 m5 U$ A3 [! E. Y: c- N
#include <stdio.h>
* n8 ?# K" E* e+ A! Q0 u6 jint main() {
; _5 B0 U$ }* D* J m0 ~& p$ g int sockClient;
) z/ J1 E( J+ H3 X. C0 F struct sockaddr_in addrSrv;8 r9 s& R M" N/ t
sockClient = socket(AF_INET,SOCK_DGRAM,0);
: o, q4 W( X" W a( g. c3 n, Q! f addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");! H; ^9 k4 N6 e4 P
addrSrv.sin_family=AF_INET; y* y/ W6 O0 S ~% k8 D
addrSrv.sin_port=htons(6000);$ W) s2 K/ H6 L, \% o+ J, [
while(1)
1 B6 \2 }8 l4 C" \% S/ E {: M7 A8 S( y& b5 X+ K4 l( E
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));' ~! F: L1 N/ h4 c# E" H
sleep(2);! h# o" I0 p1 R5 g
}
& E, f) c' e- L% r) P3 {/ a8 P close(sockClient);
& z' e$ y% a) H' E" L return 0;
+ U4 d- m% E" F% n4 y1 E. a/ o$ E}* d, q; ^6 E' E$ q' d
, f2 L9 c) f/ S
" R; l9 h. b3 N. Y客户端:- #include <stdio.h> " ~; e0 {& ^# q W
- #include <sys/types.h> 8 [, g6 T7 j) V$ Q/ o$ `
- #include <sys/socket.h> # z& T" t0 i) @, i7 y
- #include <netinet/in.h> ; e8 L5 S- f2 @
- #include <arpa/inet.h> 7 V- C# u0 R. w7 _8 K" X
- #include <string.h> 0 O( h0 [, |. O; B1 Z
- #include <unistd.h> : k" a& p2 F9 s6 P. T* d- [; F
- #include <fcntl.h> 4 W0 c. a. X+ c" p7 g, r$ Y7 f2 [
- #include <sys/time.h> ) M0 C: z4 b b% R* D; u4 y
- #include <sys/select.h> 8 x" {5 W& e w) o- k6 R
- #include <sys/ioctl.h>
% D+ e% ? N! p8 c: K/ V6 ]7 R/ C6 J - int main() {7 r4 ~5 e! G3 M! h1 ^2 |9 B
- int sockSrv;
- k f' K* @+ Q1 O! w. v& I - struct sockaddr_in addrSrv;
: ]) x1 W( ^( z4 c/ }- K - int len;2 w( c. X6 j/ H; N
- char recvBuf[100];
! u, s% B' {' q" P+ s - scanf("%s",recvBuf);
r/ p+ x7 W. A) @ - struct sockaddr_in addrClient;) W; r8 A3 c+ \) V' ?" s
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
d0 q& r2 x& b8 U2 c- E+ ?4 B - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
3 R% r1 n* u1 i4 Y3 } - addrSrv.sin_family = AF_INET; R, R+ }% S! E6 g# e' s) V8 r
- addrSrv.sin_port = htons(6000);' a! p7 `0 W* }/ ]" l- y: r
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
, o3 w! i* a o* @: Z - len = sizeof(struct sockaddr);
- e2 n( Q2 h* F% I1 H/ L0 k - memset(recvBuf, 0, 100);
& W5 t6 G" z8 e, R. g- _ - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len); Q/ X4 j+ A6 r1 I( [. @
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));/ K5 g7 m8 M8 ~6 d' L
- printf("Client data is:%s\n",recvBuf);
7 L" |/ T: G1 `% J - close(sockSrv);0 r; b/ e% R/ M6 ^
- return 0;5 q7 S- p& M/ t! D* ^
- }
复制代码
. L4 s x( Y: {3 s; _' P9 h
7 u/ H( v# V, V% N) u, t" \7 P: y6 n" B: _
$ I$ R& }; R# ^% P5 d4 _
|
|