管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
' }5 T& @* O. t) e) a7 c#include <sys/types.h>
0 b( y( I0 t R: p+ @#include <sys/socket.h>
! O0 B6 \* }3 ^1 ~% g' d4 {#include <unistd.h>
, l& d# k+ X9 E# F' Q#include <netinet/in.h> 9 m t3 T) [* N, |( `9 V/ B, T' m( k
#include <arpa/inet.h>
1 v& a7 G- n: f$ s#include <string.h>
# \5 G1 @, d$ \5 X( r- q/ O$ d6 @# p2 q#include <stdio.h> & N: i, C8 T0 U, _ B* \
int main() {
8 g. X, ^% |5 m4 @ int sockClient;
" q. ~' ^- e5 |6 Y- @; v struct sockaddr_in addrSrv;
1 f3 ]' z& {; r; Z sockClient = socket(AF_INET,SOCK_DGRAM,0);/ w* y$ j1 G/ Q
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");* d$ \* z% f/ V8 j& s( {
addrSrv.sin_family=AF_INET;
- S+ j5 V% i! x) r8 a" b( ` addrSrv.sin_port=htons(6000);
0 v1 i1 e" _8 N6 J' ? while(1)
; Y# \, }! X+ B! [! o+ N& o {" [: B$ P: t6 `* e
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));, d% X* h- X9 A) H
sleep(2);( d) y: P+ s8 q$ F9 z& T7 n& l
} & @: S: s% c6 }# ^/ [$ D x
close(sockClient); ' G! H2 `, m* d: a3 y7 X2 H
return 0;
3 e- F- x4 Q5 c) L* m}
# |2 K3 g7 t9 F# L2 x& n9 l9 O7 N& ~
0 ^) q' K1 U6 D0 I W; C" ?" @* }9 T. [& o: n7 f6 Q4 f9 Z
客户端:- #include <stdio.h>
; f2 u/ }6 f& G) \! |' V' R - #include <sys/types.h>
: _7 D5 W& y1 r - #include <sys/socket.h> 1 m" R. V+ J+ y2 d. r: d
- #include <netinet/in.h> - m8 M$ `9 N+ z* \) Z
- #include <arpa/inet.h>
- p/ O( b5 _/ V - #include <string.h> , a: _; S8 J2 `" `- J0 f4 a. s
- #include <unistd.h>
2 X. g3 ?. _1 N3 S& A6 n2 Z - #include <fcntl.h>
" `# Q( {$ t9 x1 p1 Y) P - #include <sys/time.h> * g2 i( r- R) y; x% f5 X. u) t
- #include <sys/select.h> $ R9 ~7 M: J; R4 _' _* P1 c
- #include <sys/ioctl.h>
' G) K* g% i2 D V - int main() {
! r: d% e, _+ q1 U! ] - int sockSrv;$ C8 j& Q3 ]( m
- struct sockaddr_in addrSrv;. k& O" C* R5 L) u: m* J% r
- int len;
9 ?% `* z6 b7 [6 j0 F - char recvBuf[100];. m. g! A) P, C/ H& E- [
- scanf("%s",recvBuf);+ B/ O" E4 ]0 w
- struct sockaddr_in addrClient;8 A. Q% t: v$ r- @1 @
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);/ ?: C$ B2 G* V( ^8 b
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);1 J$ K k: @8 Q8 {( z4 z
- addrSrv.sin_family = AF_INET;, ]7 C! R5 Q0 P# i) M
- addrSrv.sin_port = htons(6000);2 p( P9 ]5 g2 ^& t$ U- W5 U( Z( H/ T
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
6 L0 g: g, G3 g3 f0 h9 c) B. p - len = sizeof(struct sockaddr);
( ^3 N3 R4 \# h& C) ?9 q - memset(recvBuf, 0, 100);
- L0 M% u2 Y" } - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
# n+ ]& W- Z" M9 w; I* x1 m - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
+ @4 M$ V& c X9 y - printf("Client data is:%s\n",recvBuf);3 f, V5 Y+ X7 V x5 Q+ e8 a- K
- close(sockSrv);
( ?$ x' @9 d6 g1 X$ ]$ P y - return 0;
. Y! L9 {: X. k. h, c! G - }
复制代码
0 g- s3 O8 V& w( t0 A& o; Y- r1 x! i N5 B4 f; d
: ]7 D4 U- ?$ M% X; M$ U. N' t1 z- N
; {9 D0 ^( w, K5 M
|
|