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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
( ?2 _4 L( a4 h: t! d3 L' u( z#include <sys/types.h>
: c" _$ S5 M; p8 `8 |5 ^5 }2 h( Y* n#include <sys/socket.h>
! c. k8 C; {; s0 O# i/ ~, p#include <unistd.h> 3 }. H; `" v' Q: Y3 O: H/ K
#include <netinet/in.h> " B! X9 e) d3 _/ w. s1 h6 R
#include <arpa/inet.h> 5 J$ r- u9 O+ K5 ]$ s+ [
#include <string.h> ; t' G( `- K- d+ l( P
#include <stdio.h> 3 Z' H7 i5 G4 v* d' O. Y/ \
int main() {6 J$ f4 F: Z" x
int sockClient;. D/ t" X W l/ d4 k% G
struct sockaddr_in addrSrv;
- A" ]5 N' b; I) E sockClient = socket(AF_INET,SOCK_DGRAM,0); K! r# {% X$ L7 d) |% }
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");8 {* W5 F( h ~8 x( ?0 G
addrSrv.sin_family=AF_INET;! ^1 ~, |/ g' `4 u p$ m
addrSrv.sin_port=htons(6000);& [ q/ x2 R4 T+ l
while(1)$ B' i }0 o; ]' {! a+ @9 `; c. G! E7 I
{) n7 V4 \1 z, _/ Q
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
* g* c2 F& y5 ~) c, i5 a2 N2 @" x sleep(2);
, O+ Z$ v3 P* ~# z }
0 n/ x5 O. O0 |% z( H; G) @. N close(sockClient);
F2 I% i4 [/ d. _3 K9 | return 0;
0 w( l4 j5 o. L+ U}$ o# p s$ i" D8 y
0 V! I+ n+ N, R
; l- M v7 e% X4 `# Z# m$ D4 W客户端:- #include <stdio.h>
, Q7 {2 |) K0 b- v - #include <sys/types.h> 6 n# M' |! u& N2 l
- #include <sys/socket.h>
! t; U! Z( D- u' d8 W- k' X( E6 s - #include <netinet/in.h> 0 M* E: M3 Z7 V4 o$ C" E$ W
- #include <arpa/inet.h> : ]# l, v* O3 M x5 `
- #include <string.h> $ t/ r7 B7 e* N! n2 `
- #include <unistd.h> 7 W% p5 Y; L# _7 \2 B; ]
- #include <fcntl.h> % G+ c- {, j6 p/ T1 _* U
- #include <sys/time.h> 8 X& o& ?8 c6 Z# R9 U( h6 W
- #include <sys/select.h>
# x4 y' t; ~! d d1 F" U" F - #include <sys/ioctl.h> 4 @7 U/ K" a9 M0 ^7 q4 v
- int main() {& ^3 a8 T1 ?* k& p. n4 A
- int sockSrv;% K2 O5 |. ]8 |0 S
- struct sockaddr_in addrSrv;
& k& z+ f3 }" |# @" ^" ] - int len;
) S5 ]/ [8 d+ ^# _1 C2 Q - char recvBuf[100];3 p( Z; j' A3 K2 Q
- scanf("%s",recvBuf);
3 H9 E4 R4 W( a& o - struct sockaddr_in addrClient;
4 C! C: N" x, i# j1 ? - sockSrv = socket(AF_INET,SOCK_DGRAM,0);+ ?4 i" a. J! f- ^- Y$ v
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
* u: A& Z. d7 T) I K; l$ t: T - addrSrv.sin_family = AF_INET;
8 F5 D1 g. w. e/ [# p - addrSrv.sin_port = htons(6000);! R) @3 a+ a' K7 A
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
3 W" m$ c9 o3 h0 a4 n3 f% J/ {0 o9 } - len = sizeof(struct sockaddr);
/ j2 G3 b) Y e. z6 j# B7 \1 G - memset(recvBuf, 0, 100); a9 f& N) J* r) ~
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);' g& F+ T& d5 s: }$ k# b* B
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
1 Z# N9 E9 |) J" s8 N1 G+ Z - printf("Client data is:%s\n",recvBuf);6 U6 [ W5 P) m/ I: m7 P% e
- close(sockSrv);
6 y+ B! F1 d0 L2 X - return 0;
8 g1 s) u7 }" g! C! ?8 T( }; L - }
复制代码 2 |! z$ l2 w0 A! v& r5 q
# u9 [5 G( j. {1 a
& M w- o/ }3 S3 Q) B f% P2 x P; A# q
|
|