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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
3 t, O; [" _ L K9 t#include <sys/types.h> % W3 L7 H |; G- R- |
#include <sys/socket.h> 8 F- T/ f: ~ \! K% Y, r
#include <unistd.h>
b5 R% m% Y% S% C8 f#include <netinet/in.h>
6 Q: g- t/ X F9 h8 P3 A7 N#include <arpa/inet.h> 5 ?& g, c" ~# k/ k2 s" A1 q" C
#include <string.h> ; D& S0 q8 |3 _( g6 @
#include <stdio.h> 9 }1 ^) F6 {) e2 |
int main() {
" x6 o# ~: j4 K& f int sockClient;
/ S F5 d8 @; r/ W struct sockaddr_in addrSrv;
% r& U( Z. n7 A$ m% X" S sockClient = socket(AF_INET,SOCK_DGRAM,0);
* t# a0 U* u% o- J; g& j4 i addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");+ ?# D/ n4 H8 E% p7 B5 C5 A
addrSrv.sin_family=AF_INET;
2 G/ x# Q$ O& x# d addrSrv.sin_port=htons(6000);( g$ H- K' h" g4 q, d6 |# D- W
while(1)
; _, b; g0 w2 R: Z }" | {
7 e! i+ K2 t0 N sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
5 X- ]$ |: q K sleep(2);5 V& m8 M8 X- b* ]$ } \9 z
} " R2 d# u y" F1 R' n" K9 S; y
close(sockClient);
. O; ^5 o$ h: R* [ return 0;
) ^) i' u+ {, ~: o+ r' @. K}
9 h2 P, l9 b4 W0 Y& g- I3 p8 o ? f! Y8 e1 f
. f8 p: Y0 _$ S# X' n& L客户端:- #include <stdio.h> ; s: q* B: o2 a" z1 n c
- #include <sys/types.h> * j$ O* Y. n+ G' l" M3 | s/ I
- #include <sys/socket.h>
* `5 x* ~& a+ l! C9 [ - #include <netinet/in.h> ! t8 m6 _( d* j; |% @
- #include <arpa/inet.h> ) v% @# P+ x; e4 ?
- #include <string.h> 3 k- _/ h. j D. \7 m; r7 }
- #include <unistd.h> # [! ]- l# z" F: o- I5 U
- #include <fcntl.h>
3 M6 Z. g3 R3 p; L3 O - #include <sys/time.h> ' g; c7 ^- k6 h; F: u* q% w
- #include <sys/select.h>
9 c/ L9 {- A E: t1 _ - #include <sys/ioctl.h>
/ K, g" u! o2 s - int main() {5 K b1 c9 V) g4 w c) W! e
- int sockSrv;( h7 r& I% ~, z$ Z. j
- struct sockaddr_in addrSrv;
8 Y5 s; U5 N: z0 N( N+ d - int len;
# ]# |+ v6 t( T1 k+ N$ l - char recvBuf[100];
9 e# _3 r9 w- m/ j - scanf("%s",recvBuf);3 z* y( Y* R- u! o
- struct sockaddr_in addrClient;9 f- q. e8 `- J5 G9 R. h* [+ w3 L
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
( O0 }( Q" O( X1 _: @3 | - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
$ X8 W8 Y' {! h D/ ? - addrSrv.sin_family = AF_INET;) E/ \2 d) Q5 j! a$ A7 F5 {8 C
- addrSrv.sin_port = htons(6000);8 C# Z0 t+ w0 ^% q8 q/ F
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
" W; S: p* M3 ~ - len = sizeof(struct sockaddr);+ m) G; f% s0 ?" Q
- memset(recvBuf, 0, 100);
: J" y; Y+ I8 s# V) l - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);& \% Y* C. P3 ^5 [5 U4 e
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
3 _2 V7 j: N% r; ^' B - printf("Client data is:%s\n",recvBuf);
3 l+ ~; V* G5 U" W4 y6 g( q - close(sockSrv);& R S0 v7 C0 A% }1 i+ j/ u0 L
- return 0;
- l, L- @5 X. u; y5 W* u4 e7 j - }
复制代码
6 c; M. b- \- Q M) {0 _) G0 X0 P4 O: v, u* n) T
+ T- l. i7 E# v( `$ V3 i* ?+ h5 a3 E, V' [. A' ?4 |
|
|