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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
7 Z! K- i. b$ {, a#include <sys/types.h>
) n0 s4 i3 ~) @2 ^6 z' e#include <sys/socket.h> * A2 S; ~, t( {" T
#include <unistd.h> ; {1 n' g. Z: I
#include <netinet/in.h>
' ~6 n2 f+ @0 B#include <arpa/inet.h>
/ M: f u$ n. ?8 v% W8 s, h8 v#include <string.h> & M$ ~4 u$ ]- h: y5 I- C6 S
#include <stdio.h> / g( t; e' M+ p2 ]3 p \' W& H& L
int main() {% S+ Z& R0 k6 q6 V& E2 F
int sockClient;
$ L5 c6 ^! e1 q struct sockaddr_in addrSrv;% h1 w6 @/ y! s/ D" I
sockClient = socket(AF_INET,SOCK_DGRAM,0);
' F* V. I' q1 M9 m) \ addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");; ]& A% b. w+ j P
addrSrv.sin_family=AF_INET; g7 d; ~4 {6 i8 J0 X
addrSrv.sin_port=htons(6000);
" x' W Y' p2 t* X4 G- z* t while(1)
! J* B1 X1 ?$ B# I {
( p; i- M6 Q7 L) N; E5 s2 a- W( `# q sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
# G6 h9 ^. A! a1 { sleep(2);1 X0 G3 g; W5 L9 ]
} ) [* G# e3 f1 o" j8 E: h7 g
close(sockClient);
7 \' w. m! V' G7 R9 ~3 J) _. s return 0; 9 k7 c3 D% O5 M% @5 e
}$ R8 S$ f5 T: N) S
2 N% x5 P- y) c# X. P/ m& ?4 t J0 h0 U8 _$ s5 w: i
客户端:- #include <stdio.h>
2 h8 _* n/ e* K6 } - #include <sys/types.h>
) q6 i9 E5 {* n' U9 L: E: ~ - #include <sys/socket.h>
" d6 Z3 r9 E) t+ o; g - #include <netinet/in.h>
7 X1 U( N7 y2 m" A2 k3 P - #include <arpa/inet.h> E& M; E3 w6 Q' B
- #include <string.h>
8 {. O; A4 }8 E$ G0 i4 J& d - #include <unistd.h>
) D& o7 N" [4 M' A2 v, B( a* g - #include <fcntl.h>
0 |( R$ ?$ L% s7 c - #include <sys/time.h>
u3 e f; x/ a: j' G6 v - #include <sys/select.h>
% ^- X O1 x, J% i' c - #include <sys/ioctl.h> : Z9 X3 _8 x0 X
- int main() {- n* W. v* y' i' X' t6 c
- int sockSrv;; R5 s3 @! \7 [, k5 ?
- struct sockaddr_in addrSrv;
5 k+ o8 h; k; ~ - int len;# Q$ z. t" F, l
- char recvBuf[100];# e; T1 b: [0 [/ v
- scanf("%s",recvBuf);
' w3 r& {" d# z/ k* w- h& Y - struct sockaddr_in addrClient;3 r+ j6 E! B2 N% c+ C: m) P
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
4 t9 n# V6 ^2 v1 E - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);& R/ J& f: t+ V9 o5 F7 v e
- addrSrv.sin_family = AF_INET;& ~' L ^1 `6 b5 U5 k
- addrSrv.sin_port = htons(6000);4 Y& K- b1 F0 b* R+ [. P- R6 G
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
3 E( A G9 ~3 p( ^' C - len = sizeof(struct sockaddr);
+ x; s. J$ B, J: x! t7 r' q - memset(recvBuf, 0, 100);* o+ _, Y3 K+ H3 a6 n
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);. ^! G" d) B6 P. D! T! ?! N
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
9 k' x. w9 a9 W) f: i1 c: D - printf("Client data is:%s\n",recvBuf);
4 a9 [8 Q& i3 P4 s, S - close(sockSrv);
7 }# n+ h. T6 v2 H+ t8 D( y$ ^+ k- B - return 0;; j7 V- d9 I0 F, V9 N1 Q, w
- }
复制代码
% g7 S9 ?2 w+ B: e: _% \% `- `0 H' c0 ^+ d5 W1 x- X4 w: h
/ t& d, |' E |* {6 V* b* H; Q8 ]
' c* x/ v7 E- Y' d+ c) F |
|