管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
' P4 Q) K+ I; k0 R5 }#include <sys/types.h> 1 M `( z: y9 N
#include <sys/socket.h> ' ~ o0 P M! } b; R
#include <unistd.h> 9 }5 `; M" P8 e6 i4 b7 z+ i. J
#include <netinet/in.h>
$ ?9 R" U9 P* y#include <arpa/inet.h>
2 q( s6 w8 m+ j) w#include <string.h>
! x% q- v) C/ m# ^0 s: w% M#include <stdio.h> , `& U( Z( J3 P M" W* T8 M4 g
int main() {
- u: t$ N' o2 U) m int sockClient;
+ ^/ ^+ t. D. f& g- J struct sockaddr_in addrSrv;7 x: w9 @, l6 A
sockClient = socket(AF_INET,SOCK_DGRAM,0);* w) O7 Y# z4 C
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");- k5 A, ?$ `0 X& J4 V; q( V
addrSrv.sin_family=AF_INET;8 n8 V' w0 J, G+ `" Q
addrSrv.sin_port=htons(6000);$ m/ B/ d4 c% ]) J+ x
while(1)2 i o S& j3 _) a
{4 ~8 L$ M" v6 W8 P6 s4 c
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));! X4 T' [4 u# z, a7 F, F4 h
sleep(2);
( l4 x0 v1 E- ~& [4 O }
^ h. L/ w4 j4 V3 ]& p close(sockClient); + `. a7 C2 {/ D8 [
return 0;
2 p+ E' {7 s9 A F9 U4 O7 k& @}
g3 h3 E0 c J! h' s- B5 p- [2 g( N! I! h
' U9 n5 s e+ x/ o+ H1 h6 @) Y客户端:- #include <stdio.h>
' y, S: g1 \/ {4 F - #include <sys/types.h> ( m& t( x: }2 d* I9 E& m
- #include <sys/socket.h> 4 l' ^* g* u2 \ G7 Z
- #include <netinet/in.h> 8 i! M3 V4 w9 h5 N6 A/ ?1 c
- #include <arpa/inet.h> : Q& ]' N4 B" x; g5 l5 @: l
- #include <string.h> 5 Y$ B5 |+ w# _" R9 `" g. u
- #include <unistd.h>
% x2 ~3 X5 g" ^ ?1 l: Y - #include <fcntl.h> 6 c, n# b. B- ]
- #include <sys/time.h>
1 I) \+ Y4 w+ k( R! D4 U - #include <sys/select.h> % ~: K3 R8 j. w. O
- #include <sys/ioctl.h> ' j" y7 a s, w, \7 o- N
- int main() {& b7 r; h& r8 }: B
- int sockSrv;" k& K( C# q0 |9 O+ f) c
- struct sockaddr_in addrSrv;
- E1 B4 }+ j9 F2 \ - int len;" N7 P6 A( b2 O% g* z: H% p
- char recvBuf[100];
* e6 z8 K$ W$ y5 y% X% P4 `6 M - scanf("%s",recvBuf);
2 I1 y$ j: z9 u* ^' H - struct sockaddr_in addrClient;6 r* ?8 ]" x! ^& i/ L: |# L. ^
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
5 P2 ^* K$ o. k5 Z - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);2 [8 [; G( f7 a) F5 L- `
- addrSrv.sin_family = AF_INET;
0 G+ [" C. ]0 U C - addrSrv.sin_port = htons(6000);
- R" I# \ N. {7 ~: R( e4 z7 A2 ]9 [ - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));; ~) v( W' }& q
- len = sizeof(struct sockaddr);
# n' v y# e$ Y; h - memset(recvBuf, 0, 100);& w, m2 P1 X/ m0 C4 b/ p
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);( v5 O b- X3 b6 C
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
" C8 N# B# @5 ~" Y1 | - printf("Client data is:%s\n",recvBuf);
1 Y) }" t4 }% u. ^ - close(sockSrv);: d7 F7 Q3 I7 E) `3 N
- return 0;
) a6 p# |6 ?: ]% y" v% I7 n) G - }
复制代码 4 {* m9 F9 @& H8 I) a3 M! _
5 T! i9 @& u* y4 K
; F; b; J+ P0 ?
8 H( i5 D! M8 m6 y, n( i
|
|