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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:7 N. n3 M" B! e
#include <sys/types.h>
& B$ A* q) d7 r( q2 t#include <sys/socket.h>
: V+ u% ~4 _. H' b" H5 z5 C#include <unistd.h>
, v8 W" d, C( V#include <netinet/in.h>
4 g; Y: \$ @& ]0 U* E9 p#include <arpa/inet.h>
3 r/ Z! X3 ?8 a) L: W. f#include <string.h>
; t" L+ J! C4 s0 i4 q' Y9 {#include <stdio.h>
* v1 O" t2 h5 t2 Y5 v+ @int main() {' W& d& c4 v: I+ o# @3 D7 X+ V
int sockClient;
5 g' [1 k: U0 u; b; }) t" o5 \1 G struct sockaddr_in addrSrv;9 k% _- r$ h- F x& {+ u' X' j
sockClient = socket(AF_INET,SOCK_DGRAM,0); i7 G) h$ N% y* u4 m( p3 V" T# m
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");" U% @5 U7 x3 z! U
addrSrv.sin_family=AF_INET;" ]) R% U7 v! W
addrSrv.sin_port=htons(6000);0 ?9 |* Z C" A* h& k" i* y. E* Z
while(1)
- X7 M) r; q5 @; ^ a# w, t4 g {
! n+ j9 G0 E$ d! n' ^; |4 Z3 y, Q sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));+ b! i8 `% G% D6 v
sleep(2);& \$ a- P2 V* C9 V
}
: k! D* b+ P% K2 i# o ?5 _ close(sockClient); , Z/ v" l/ K( e' l- j
return 0; 7 c/ c% z( j6 u8 t. {% Q
}
! _( _1 Q7 u$ u
' a1 Q4 i8 \& X6 i; |+ Y3 I
3 c% a6 D, ]/ h' b客户端:- #include <stdio.h>
# m/ g! H) S( Q- u$ p - #include <sys/types.h> 7 ?- {# L# A. I1 v3 `
- #include <sys/socket.h> ( w+ q" e3 q/ `8 {& K1 N! M
- #include <netinet/in.h>
6 m* e/ ]9 {( U: m+ } - #include <arpa/inet.h>
7 e9 K' V7 o4 }* e% T - #include <string.h>
3 U! ^4 j8 e8 W( `; b - #include <unistd.h> " R& @3 ?' o1 B6 | Z( c# d: }
- #include <fcntl.h> : y- M/ c4 ~5 R
- #include <sys/time.h> % q" R) a0 A6 e. s4 E
- #include <sys/select.h>
0 r8 f D' d i' N+ e- @ - #include <sys/ioctl.h> + E# Q* r" Q! T, y9 @
- int main() {6 Y( I4 m/ q' U
- int sockSrv;
/ h% t% J! F$ O- l - struct sockaddr_in addrSrv;
1 S/ {. Q3 b' i9 Q, E - int len;
* y$ D0 F4 k2 R( b* Y$ Z - char recvBuf[100];
6 z2 Y: l# j# ? j - scanf("%s",recvBuf);
: ?+ R( w% ?% c4 b- f2 M- m4 w - struct sockaddr_in addrClient;7 B( X4 j: `3 u9 d
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
, J" v9 r+ [3 C6 L8 g0 v. D - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);1 i0 y* Q& |) S8 w3 m
- addrSrv.sin_family = AF_INET;
6 I7 E! K7 E- z7 o7 F- |, O1 A - addrSrv.sin_port = htons(6000);
' g4 v; `) ~! Q( S - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
c9 f& ?! Z0 }1 R5 c0 s" c8 L - len = sizeof(struct sockaddr);
" }- d( m8 R. }: p3 ?8 p) ` - memset(recvBuf, 0, 100);
& t, S- j3 r; h, b+ P% X: S - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);- E9 G$ I9 p5 g8 h: y
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
5 d& G! t9 t3 A( Z - printf("Client data is:%s\n",recvBuf);, O% F. S/ _2 t+ o% o
- close(sockSrv);3 D/ h, a0 l: [6 U
- return 0;
% B, O- _; d! j; |8 b5 d! J& d" { - }
复制代码
+ J( K$ C( r& E" q/ W- ^' X. L0 v5 x# G. i: `- K
! d/ @4 }9 e/ m5 p* K s) `! D# B1 ~& A" [; S; U
|
|