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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
) `- O( `7 o6 I6 {! P8 y#include <sys/types.h>
3 D* _5 m3 {+ v* v: ]#include <sys/socket.h> + Z9 b( [; Z, d
#include <unistd.h>
- H, u) O4 `5 X#include <netinet/in.h>
- Q" o! V+ M# [7 M- ?# n8 K#include <arpa/inet.h>
2 x! C- F; i+ }. ^#include <string.h> & J* `0 n9 |+ g, W+ e2 I7 ~9 B
#include <stdio.h>
& E7 p5 }4 u* y* _! T3 Aint main() {- j- B1 a0 C I+ }9 t& \
int sockClient;
' r; n* x% E, E0 b5 O* g! k struct sockaddr_in addrSrv;& N5 v j2 P" \0 A$ M/ L
sockClient = socket(AF_INET,SOCK_DGRAM,0);
2 Y" P4 m. H! G# a' s4 \! B9 _ addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");4 }0 \( {3 U! R4 m0 O$ r
addrSrv.sin_family=AF_INET;
& D* h( }# ^! a3 ]) L9 j" G1 d! b* L addrSrv.sin_port=htons(6000);
: [" q9 _( z) B0 U7 C0 R4 I( Q" ~ while(1)
- p9 Z* |- h, v& \ {
' n' k k6 _; j sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
$ ^5 c% j3 \; k# J1 X+ h" ~* D/ R sleep(2);5 }3 \4 l, p) C% k, h, f
}
3 l3 H8 t |, ^+ E" P4 J) y close(sockClient); ! d/ X0 z o* R- v# F2 `
return 0;
& |( w+ n( z1 y% o# }* L# y# v6 W$ m}
* U: M' H8 H* U5 p2 k5 N$ V" I1 |( x/ u
$ L$ i; e {; `- x客户端:- #include <stdio.h>
0 _- Q8 ]! H& E4 j$ H. B( o/ T - #include <sys/types.h> ) P* J$ z' p: ]) N
- #include <sys/socket.h> & P3 B x6 f% i
- #include <netinet/in.h>
8 g3 y; Y6 k0 y( b- {# { - #include <arpa/inet.h> + K; }. J r1 p. I# u+ }+ t# Y
- #include <string.h>
+ f8 h6 n* A) V9 R+ B2 h - #include <unistd.h> , ^" T( H; S+ H+ k# @/ O( O- _
- #include <fcntl.h> 8 ~' q8 N' w" ]$ r# I# i
- #include <sys/time.h>
2 ]6 O: t) n5 q1 _ - #include <sys/select.h>
: ]1 e7 |1 n! R" C! P - #include <sys/ioctl.h>
. u9 R9 }2 t8 E5 w/ N. U7 a9 n% {5 U - int main() {6 U, }* g% N$ e3 v, b
- int sockSrv;
$ M* m9 J' x' u9 l - struct sockaddr_in addrSrv;( P+ e& c) u% Y) U% ]
- int len;
7 ~# @( R M* b! o& [% n - char recvBuf[100];' \* B7 n; _4 U q% w
- scanf("%s",recvBuf);* I i. @: b) R6 E
- struct sockaddr_in addrClient;8 p/ {8 t# e3 {" O! u+ M9 P
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
6 F- {9 Z) J! {0 ?5 r5 y# {7 [# a - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);% S' Y/ _. c6 w* a' x- S6 q
- addrSrv.sin_family = AF_INET;1 O0 Q/ N0 X* y, T M4 h
- addrSrv.sin_port = htons(6000); c0 J, S( p5 X: ~% q* ~
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));/ J+ S2 G2 z! B0 s# n
- len = sizeof(struct sockaddr);
! ^% A6 N% @# P$ y - memset(recvBuf, 0, 100);
% G; S6 n5 l' g$ O# U9 G - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
y7 ^& G3 M! I5 g' Y - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));3 v* r4 p8 ]) e/ [4 S
- printf("Client data is:%s\n",recvBuf);, C: a, M8 A$ D* A4 a
- close(sockSrv);
; ?# E4 i& D; {. k - return 0;
- w. w7 V( t9 u+ r0 r8 z% d* | - }
复制代码
: Z8 L0 R* r( O+ j0 l' e/ Z& u( @0 U' L( L
, N$ P* k3 D9 o
7 ^& B) R3 e7 M4 Z |
|