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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
' H( R ~' p9 x4 X; B) H+ b#include <sys/types.h> " t: S( J& h' d' `) C/ \
#include <sys/socket.h> % Z' j5 K% g2 C! W. w
#include <unistd.h> ! T9 s2 w! d+ [2 F0 y& h1 Z8 i% ~
#include <netinet/in.h>
2 N; A) y2 {+ x S. K8 h#include <arpa/inet.h>
0 F; j. B, W5 | {2 M#include <string.h>
, Z5 J3 b, @* z2 i#include <stdio.h> 1 U& `0 S( _7 B4 {' T3 c. e/ j8 y6 U
int main() {
" [! z( }9 z- S! Y# s8 e int sockClient;
2 E/ K4 m5 y3 `' r. U) Z5 ] struct sockaddr_in addrSrv;2 \1 f4 @; A# W; |
sockClient = socket(AF_INET,SOCK_DGRAM,0);( `; M6 E! E8 a, a
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");& y ?% U' \7 V- H6 X' i: X' |
addrSrv.sin_family=AF_INET;, S( R6 f$ i9 K( f; V0 X
addrSrv.sin_port=htons(6000);, o7 @& v1 @' X2 j' w6 o6 D/ J# h+ x
while(1)
$ ^: z0 b: H/ L& p+ T4 [3 l {5 q+ V& V8 T" w) D; K9 b
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));- A% K# ~: f. \9 h6 z
sleep(2);
% w- q! D: f3 r; @ } & w7 y6 W" Q) f3 j
close(sockClient); , Q% ?- _1 d1 W) F
return 0; - C. d! M1 j$ z, D$ ?
}; b. Q6 @' X& E1 j
3 \' l2 |& l1 L$ I# u, `; ?% P2 I/ w. H; e
客户端:- #include <stdio.h>
3 f+ a( ?( {: D4 _/ K) r, X$ }2 @# T - #include <sys/types.h>
/ b- _$ _! A& I5 _ - #include <sys/socket.h>
% \/ z. [4 }, N* n7 R - #include <netinet/in.h> - i6 J X. E7 N6 e3 l
- #include <arpa/inet.h>
1 G; m8 |0 D9 d8 c - #include <string.h> ( t0 r5 a1 L% X1 @
- #include <unistd.h> 2 l: b* j2 B% P1 b1 t$ P6 a. i
- #include <fcntl.h>
( J7 z6 e8 a9 K& [; x7 l2 X9 L( j k - #include <sys/time.h>
# g. v- ]" W* o5 ]- ~4 ]. E+ f - #include <sys/select.h>
* e0 ?( j# c) B0 U5 M, k; W a7 X& k - #include <sys/ioctl.h>
0 O6 b: m2 ?: Q: l - int main() {9 I6 t% ^! [3 U, j3 r4 o9 p; d7 _& g
- int sockSrv;$ V" }; k1 z. E+ p) L
- struct sockaddr_in addrSrv;) o7 @6 {4 i/ b& o, y+ \
- int len;- W8 _. {7 ]- Q1 e9 \/ q# `; X. G
- char recvBuf[100];& V8 J4 z& S( D$ H
- scanf("%s",recvBuf);, P. i5 }4 w4 e4 M7 O
- struct sockaddr_in addrClient;
3 A+ Q; Z/ F8 l - sockSrv = socket(AF_INET,SOCK_DGRAM,0);4 s) D6 c P2 X5 X
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
8 T3 l- y& H) u0 s* w" `9 {, s - addrSrv.sin_family = AF_INET;: I* M: ^3 [! j) z! [# L' ]: R+ K
- addrSrv.sin_port = htons(6000);
7 o% O' V' S3 e - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));# F1 \# G* k: @; Y2 B
- len = sizeof(struct sockaddr);
m( x \5 K5 |0 M0 Z$ {8 ^ - memset(recvBuf, 0, 100);
8 P; c% i& V; e' a2 o+ C - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
0 f, o9 C! x6 }* y9 W# e; b/ u - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));: c' D, b; V6 _1 A/ H7 @! Y
- printf("Client data is:%s\n",recvBuf);9 @: C2 B7 v9 Y
- close(sockSrv);( \: S# L# ]' q/ F0 m
- return 0;
& |0 C9 d. j. W+ a - }
复制代码
/ C5 ] p3 x3 P& O9 B, q
7 ]3 U2 x+ W- N: O, m7 v8 O5 ~9 k6 z1 P' a5 l1 E1 B/ x( {* E
5 Y% T9 L8 Q) l' L
|
|