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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
5 A4 S. t9 f/ E#include <sys/types.h> - c6 \2 h" w, F2 J1 Q4 y* T3 {
#include <sys/socket.h>
1 O5 D" j. H+ k" J( W$ F#include <unistd.h> ( \% f9 Z' I% @ T% n7 _5 p
#include <netinet/in.h>
, {, U( G/ ?7 e/ X; g! I. N4 s5 T0 D#include <arpa/inet.h> * O3 k2 o" d# {, n4 S7 {
#include <string.h> 0 I5 E4 Y; i8 r
#include <stdio.h> ! a& @4 X; B! \% c& P" v" L
int main() {
9 D) `, Z8 ^# i8 ^! E int sockClient;
0 F& E6 t1 U$ R6 t# u struct sockaddr_in addrSrv;& M, N1 h2 b! |5 Q' B- L4 i+ m
sockClient = socket(AF_INET,SOCK_DGRAM,0);( u" x: l( N7 z% P" }7 a* ]3 f
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");# }8 ^2 |6 B9 S% p8 v1 v
addrSrv.sin_family=AF_INET;5 H; O; {) K7 J/ V" |5 N
addrSrv.sin_port=htons(6000);
- k2 Q# Q0 i( H% z/ u+ h" \4 m. j6 z while(1)
) ~; ?. p2 h* Q& g1 @4 Z {0 K3 ~& |3 G* d% p) k& n
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
% Y& E1 J6 g+ A4 O& {/ d) J sleep(2);: v( {0 M+ q N k
} 9 Z+ U6 Y5 B g& M
close(sockClient);
+ y' Y9 B2 v% y1 G6 ~ return 0; 3 b3 v3 e9 G+ _) L' G Z
}
; k* {7 }/ |1 h2 N1 d% T! m4 m4 v" ?$ V( ?+ [; y# e4 c c4 H( _
: {0 f- [4 o0 V% P v
客户端:- #include <stdio.h> 0 g, U; t& ^! p$ E
- #include <sys/types.h> , T3 G$ U) y$ n0 `. I7 }; q
- #include <sys/socket.h> + H9 D( ^5 F) j- F: a5 X9 l
- #include <netinet/in.h> 8 q- o5 |& T6 Y+ O; D1 U
- #include <arpa/inet.h> , B! f) ^8 z* f: O
- #include <string.h> 4 \; N m, X% n# s/ v
- #include <unistd.h> " P5 c2 R: m# i
- #include <fcntl.h> ! f& R) ^8 R; d$ _
- #include <sys/time.h> 3 [6 x. @0 r+ ?# L3 c9 S/ c
- #include <sys/select.h>
) g" x4 O6 E5 B - #include <sys/ioctl.h>
+ t q' P- L# {) \ - int main() {
* M- C' E2 \% ]) D - int sockSrv;
( g0 Q9 S' v( `2 @5 w: V' c( Z. C - struct sockaddr_in addrSrv; ?$ B, G) U7 s$ H' f
- int len;# R& ^" |, O% W, `* _' [
- char recvBuf[100];
" W2 p2 {0 Y l" C U, G6 G - scanf("%s",recvBuf);
) D, n9 a2 Z8 G; v8 Y6 n+ E - struct sockaddr_in addrClient;
5 ?! u/ u2 [% O - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
/ S/ S8 h% N# P+ W X - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);/ q$ n4 Y% d4 t: ~0 l# \' e
- addrSrv.sin_family = AF_INET;* Q; Z- \$ l! B! m* L4 i" b
- addrSrv.sin_port = htons(6000);
0 |! e" L. M; F - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
3 J9 ~+ M6 x7 R0 }) `1 p: x - len = sizeof(struct sockaddr);
, Z ~; Z8 n: B( c - memset(recvBuf, 0, 100);. b# F4 {( u3 @! k$ w& [
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
. W W- ?" O* L' c. V - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));* Y0 b! A7 x" m
- printf("Client data is:%s\n",recvBuf);$ M+ o- k4 i C
- close(sockSrv);" f( I0 c1 Q+ b O4 s
- return 0;
/ }( K- Y1 o+ _9 O4 Z, L3 o - }
复制代码
) q/ x, x- _# t, ~# P& E! q9 j$ y- ~" Z. r# T0 ]
2 N ^. H9 u! d& s
& N9 x# d. n( x |
|