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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
* a8 o% b$ o, `5 U& C# Z#include <sys/types.h>
. W$ ?' P) j$ i#include <sys/socket.h> 0 V3 [2 E; m) f: _3 ^1 a# t! k/ q
#include <unistd.h>
% ]4 D- U2 M1 m% S$ Z9 G#include <netinet/in.h> ( @8 V# S: _& B3 ~3 P
#include <arpa/inet.h>
, N& o$ B4 H5 F" z8 P, A/ i$ ^#include <string.h> # j7 e3 @; y2 s# R% ~* i7 L
#include <stdio.h> b9 ^& P- K( q4 b" U; V7 O+ g
int main() {' K: S; o; V/ i, p0 f( r
int sockClient;9 H2 X1 e- c7 r. b7 e7 X
struct sockaddr_in addrSrv;3 {9 l% ^6 p9 U3 ^
sockClient = socket(AF_INET,SOCK_DGRAM,0);. Y) M% X. b: T4 e- N r; p6 y
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
1 R( L* p. ], v9 X' o addrSrv.sin_family=AF_INET;$ I; j/ H% C/ t3 Z" g5 r0 a8 `
addrSrv.sin_port=htons(6000);
' ~8 O, d: R( `/ b- m8 D$ G while(1). @' O! h8 w/ k* e6 O
{
1 S( \% I! _! a+ n sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
) Q0 A& y; I- W sleep(2);2 a, T C. ~& d; t9 J9 T) {, S
}
N) w3 ~, w- p5 ~ close(sockClient);
4 @& t( Y: X# L9 t. W return 0;
" r# J) s7 n/ n* g" t}
* n" C" U0 N9 E; r* G/ E. Y( F" a: f7 r/ ^# ?2 h1 j% u/ y5 V' `
! }3 a8 w; T$ ?- R& y: Y
客户端:- #include <stdio.h> $ T; m' G/ ?) @0 N6 ]5 }6 ^
- #include <sys/types.h> 6 u$ `9 I. ?5 r9 ~& ^: \" j
- #include <sys/socket.h> ' A2 v! \7 D x5 q* e1 B
- #include <netinet/in.h> & ^$ B4 S5 t* B6 ]
- #include <arpa/inet.h> 5 {) @+ r. ^3 B8 r4 ?
- #include <string.h>
2 v6 y& e/ `; z+ U1 n* N - #include <unistd.h>
- F' s; E; e/ s9 k* G - #include <fcntl.h>
+ S. n& c; f! E - #include <sys/time.h>
. V) n1 C/ D* U) i3 T - #include <sys/select.h> " q6 R9 w! D. A6 B
- #include <sys/ioctl.h> 1 Z; }1 _( V- c' ~
- int main() {8 ^! a- K( x: }3 ]
- int sockSrv;
' V6 q& o" u6 Q3 J. ]2 S i$ r - struct sockaddr_in addrSrv;6 P! D. c" E" ]8 }
- int len;
( e: d% ?# Y1 W" @4 g6 K1 K - char recvBuf[100];
) R8 X3 w3 B; i6 r+ @$ v - scanf("%s",recvBuf);
+ ?: u/ T+ h7 A( Y) c% s9 k - struct sockaddr_in addrClient;2 s* X* q& X0 D* x+ | i$ s& M+ ~$ D
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
+ J$ m8 H4 e% h - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
% ~3 X7 V6 z7 z5 f0 \- l - addrSrv.sin_family = AF_INET;
6 u7 E; b" n" ]1 U( w - addrSrv.sin_port = htons(6000);
, o. y9 B: K3 f" F+ e& G - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
. Z! w' H2 D+ j9 H5 y7 C - len = sizeof(struct sockaddr);
2 y U$ r3 w5 y7 y - memset(recvBuf, 0, 100);# ]- S9 U& D. c: D Y% S
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);5 j4 c( b' B: H. N# [/ _
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
# s# k8 A/ o6 U - printf("Client data is:%s\n",recvBuf);- v# e/ Q1 x4 k2 B( z) f
- close(sockSrv);
$ ?$ [0 s6 N9 T- S% h5 e - return 0;
2 W* M+ S8 J2 v _ - }
复制代码
8 t/ D' D* q, c8 ], E* q, L/ f l6 g' f3 C8 p% C
4 E5 K: b' e( U" V5 z2 ^2 l u0 R# D) C% n: }
|
|