管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:% I1 h2 Z1 d# h& G& c
#include <sys/types.h>
9 g1 E1 R; x( V* f6 b+ t3 p#include <sys/socket.h>
' U: h/ z5 D" g+ F4 g#include <unistd.h>
* `! `( p. v; {1 O, \#include <netinet/in.h>
" u4 v$ C9 X, v7 x' T#include <arpa/inet.h>
; h" X- P2 C& q#include <string.h> 7 D9 o; w6 s( V7 M% f1 E. S
#include <stdio.h> 4 \% `: k$ v7 d0 J% `2 `# z: b; a
int main() {
) m- ?: F7 U* j; g2 J8 ^ int sockClient;3 ]% I2 \: _! t; H
struct sockaddr_in addrSrv;
. N3 g4 S! N, Y& S" W sockClient = socket(AF_INET,SOCK_DGRAM,0);
9 U' L. C& Z+ i; \& q addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
7 d/ `' J8 I, k' h addrSrv.sin_family=AF_INET;
, p* a1 u2 f7 @2 [8 A addrSrv.sin_port=htons(6000);& O# A# g) t! q6 l7 x; U
while(1)4 l4 v8 y8 Y7 I! t' D! z9 c
{, R) s9 }- ?) x1 H
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
1 X+ i* J+ J# ~# P; s0 F7 d sleep(2);, c* f6 A4 }& j+ t) t3 m4 o
}
) \: x* z8 Y* q: {) K1 ` close(sockClient); 0 ^8 k1 j+ M) X; a
return 0;
2 x7 o/ U. L) _- @}" {' w+ l$ b. ]* a+ E
+ ?) j- c* L7 z6 h7 K
; i+ N6 X( b& G' H# ?/ T, ]客户端:- #include <stdio.h>
9 i; T: v' e* N* M' t# y' t( `' u0 X5 T - #include <sys/types.h> 3 g K6 d/ t9 y4 h/ g0 D
- #include <sys/socket.h>
, f8 R5 j* ]0 Y6 V' v% E1 z* Z - #include <netinet/in.h>
; W1 k+ Z) b: K+ D) x0 r0 M1 D - #include <arpa/inet.h>
! X# @/ n k& N4 _ - #include <string.h> " F: p* [& ]# g# U$ B; W
- #include <unistd.h> ) @& ]! |4 O9 Q7 M0 j7 i" D5 I) X
- #include <fcntl.h> % \* I* l$ @& p" d" u! a1 t0 m
- #include <sys/time.h>
A; D' F9 y$ r: V9 C - #include <sys/select.h> ( g* I$ C/ L9 n H( H" j
- #include <sys/ioctl.h> , ^& e3 t% ~" C3 U
- int main() {- @( H% }+ I3 R
- int sockSrv;% U+ U2 c1 x9 n$ `+ f" z. L% `
- struct sockaddr_in addrSrv;
+ p' M; {9 M& ^0 F$ f/ G - int len;
- t' P9 Q5 X. s6 z2 f0 b - char recvBuf[100];
7 B7 ^9 g$ o3 [8 M+ f# ^ - scanf("%s",recvBuf);- @& ]4 |6 k7 w" {3 Y5 ?% I E/ `
- struct sockaddr_in addrClient;
# j- ]7 Z0 N" X" M5 U4 h' `8 _ - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
" R2 y! q9 D! N- \! o6 {9 W - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
8 d8 A% A# ?! w$ U - addrSrv.sin_family = AF_INET;: t/ M5 F V1 `9 l7 B4 B* C
- addrSrv.sin_port = htons(6000);! ]1 z0 u( x% q1 z/ a* G( l
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
3 Q7 |& B# \4 _9 B6 R4 f3 Q. [6 o - len = sizeof(struct sockaddr);
( e& D9 J3 G3 f& q9 \) p9 a - memset(recvBuf, 0, 100);
/ |0 ~6 w) B: [/ m# T# I6 Q8 J - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);% {, B q3 z* `& O
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));+ X% U+ c9 V4 Z! ^$ v* ]0 F0 r
- printf("Client data is:%s\n",recvBuf);$ d* D/ v+ I% ~. U
- close(sockSrv);$ l s1 D9 h h) e; Y! @
- return 0;0 B, v3 b5 K/ U6 x! @
- }
复制代码 - K6 I* d. ~3 c6 ^ ]& A5 `
6 D: \ b: X0 I. D/ z+ ~+ t
* d2 U3 | [& o: W; w/ [
; e: o! L4 C1 x; T+ }+ G |
|