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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:2 E* {2 o5 @/ f" O% m
#include <sys/types.h> . K& M5 G* S# ]9 f4 l
#include <sys/socket.h>
, H# F! z6 x1 x+ O+ |; _$ z#include <unistd.h> M" L g% G2 u
#include <netinet/in.h>
L- k ~; U! t& ?4 H#include <arpa/inet.h> 5 e& u) a3 F$ i. y# e
#include <string.h> 3 X" B5 t- Z2 ]) ]
#include <stdio.h> " Z r) c( N* n6 K& j/ g
int main() {% q6 ^- ]6 _9 z9 S+ M9 F
int sockClient;
* Y- K- `9 A1 \9 j* _1 O struct sockaddr_in addrSrv;
( q" c. ~9 L- r3 q8 K sockClient = socket(AF_INET,SOCK_DGRAM,0); q3 W# X3 Q |4 `% _, N
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");9 M2 p8 @) U7 l" @( C
addrSrv.sin_family=AF_INET;
' u A$ T$ u% z K; y1 q6 M3 l, A addrSrv.sin_port=htons(6000);' J: L1 l; y& D3 F. g0 p. ?
while(1)
1 B' R3 |+ X) K1 V/ A7 H {& Z! a7 b9 S: M+ R6 d( R
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));6 o' [4 r0 ~- {2 X) _. U9 _$ N
sleep(2);1 R* @+ g- s! X# m2 _
} / u I7 [+ |2 I% B7 T3 z
close(sockClient); |# e5 Z s) y! `+ Z
return 0;
* { b3 {+ F$ y6 n}4 A* j4 J: D. h+ ]: a6 z" ^
7 b* y# D/ X* A6 S% G7 S8 {( Z( |" d) \3 T7 H8 M
客户端:- #include <stdio.h>
' j0 O& F. [: V2 H - #include <sys/types.h> ! y7 z1 U) G! \1 T/ N/ s" @3 e' @
- #include <sys/socket.h>
) j S7 J+ X; W" w, @: ?8 I& Q - #include <netinet/in.h> 3 x: N. u% @% f. I+ Y
- #include <arpa/inet.h> ; z" z$ i2 l9 Y
- #include <string.h>
# @+ ^- k% w' K- l" i9 B - #include <unistd.h> + g4 b/ _4 d9 z8 C
- #include <fcntl.h>
5 q3 G9 V% M8 S* @/ j - #include <sys/time.h>
; M7 v" I9 V- K! C1 ?3 Z - #include <sys/select.h>
" Z6 M6 K/ U6 @) P! r T' Y - #include <sys/ioctl.h>
' E9 q- B0 k' @5 l3 b3 @ - int main() {
. m: ]& Z1 O( z1 K& A1 K4 Q7 ^* V - int sockSrv;0 p5 U, A' f" W! O
- struct sockaddr_in addrSrv;
9 n9 B5 s t' d5 ` - int len;
+ z0 v4 p! B* [. Z% X: e% }& j - char recvBuf[100];
) s+ o8 M; Q# ?9 C' A" [ - scanf("%s",recvBuf);8 q6 z3 p; O! x
- struct sockaddr_in addrClient;# f" d6 h* w' v4 w U9 ~
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
! u" I, D8 V$ a& b% O4 X7 r4 X - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
( V- b. L& a/ M9 D4 S4 T% @& g - addrSrv.sin_family = AF_INET;
- P, t' `! v, {! J# W - addrSrv.sin_port = htons(6000);1 \) V( c$ e) Z( e) N( n
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));9 G# o, F2 `( ~0 Z7 a
- len = sizeof(struct sockaddr);9 K# v9 |$ {% Q2 h+ b$ w5 ?# C
- memset(recvBuf, 0, 100);( r8 `6 T* `- [5 O
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);$ G* W# ~+ X0 I5 C; l0 T, \; H: f
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));1 }& Q, u! p& J2 ^8 n* O$ N% h8 b
- printf("Client data is:%s\n",recvBuf);
% \9 P1 e+ D! t. W2 W - close(sockSrv);
2 X1 V2 C( D( O4 R; b) w# W - return 0;
% c# |' n* g0 F7 b' } - }
复制代码
( p$ M [1 t% `! d3 f' K1 Y; A9 B
& s0 o- e+ D! ^+ Q; b! H. r% @- `% z/ F9 z H: U
3 R) n3 t: o- N" o, m( b: q |
|