管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:9 m6 }. }. X0 x
#include <sys/types.h> ' x) w! o6 O: C7 Z" l
#include <sys/socket.h>
% {. Q" e4 v* |: r#include <unistd.h>
6 d. O- a: N J! L#include <netinet/in.h>
5 P* Q! |6 Z: y#include <arpa/inet.h>
. k+ K1 ?, S' J- S! H- L#include <string.h>
: i; p0 m: x5 h' j% p* z4 ?$ f7 u2 M3 w#include <stdio.h> 7 E0 R7 K4 W5 F3 N0 a" T* t
int main() {
, h9 a0 b+ z# _. O* K$ X2 Z int sockClient;3 D$ S2 Y! {6 m
struct sockaddr_in addrSrv;; P) g L' Q- x: \7 x
sockClient = socket(AF_INET,SOCK_DGRAM,0);" ^5 ^, E2 |3 Q0 @: q1 ~9 _
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
+ B% L7 T5 V6 l addrSrv.sin_family=AF_INET;9 d1 P: F7 y3 p
addrSrv.sin_port=htons(6000);
( H" i! z+ N; `; p w while(1)( n; Y5 {$ O7 k, }! F
{
! J. ~- p' Z% r% F% j sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));3 n2 F/ e8 Z2 o: G- p. P9 o6 V
sleep(2);
2 U. R# i5 k& w* C* b }
# {; _" L( i7 u/ l" e" V close(sockClient); 6 ]8 G- T2 ?5 E$ s$ e
return 0;
8 P$ d1 Y1 K9 R}% ?7 `) b1 C3 [, H
6 E6 y' M; d" B
1 `3 J; }3 w4 L客户端:- #include <stdio.h> # c9 [6 R5 R+ J+ o2 J u: d
- #include <sys/types.h>
! A" Z+ [3 f9 \ - #include <sys/socket.h> * e+ I, m. l- _ U: p% L2 q; Y
- #include <netinet/in.h>
& c x0 S5 U/ o2 y( @1 B2 A+ e - #include <arpa/inet.h> ; }8 B0 U r+ W; }& m. ?
- #include <string.h>
: H& J5 l0 E7 C1 C! t - #include <unistd.h>
: V+ Z1 g' x( l" r - #include <fcntl.h> ) j1 W8 P, T+ p
- #include <sys/time.h> 3 a& i$ Y# {# u7 T) ]
- #include <sys/select.h> # e/ x1 H2 B: e
- #include <sys/ioctl.h> 5 q8 o) m& i/ }
- int main() {
& h7 @% q$ R+ H( ]; c" m - int sockSrv;
1 U$ d; u6 p4 X5 z3 O - struct sockaddr_in addrSrv;; R! d; T. X k1 N0 {( W# W) z6 @7 k8 j
- int len;
0 O, G- [# n9 c- R - char recvBuf[100];
' L% l4 s O7 S6 T. b - scanf("%s",recvBuf);
) q7 |. O9 U4 C" T9 ~ - struct sockaddr_in addrClient;
/ o, g& r* U! h1 Q' D/ T/ a - sockSrv = socket(AF_INET,SOCK_DGRAM,0);2 g0 f; m- E9 b6 ~/ N% t# z1 B$ _
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
1 f" W7 L6 Q# a& I) C3 \5 u4 O/ F" f( K - addrSrv.sin_family = AF_INET;
" f& o& }/ j& G( L" }$ _ - addrSrv.sin_port = htons(6000);6 \$ J4 M1 g* @ G# r
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
& k$ s* m$ D* r - len = sizeof(struct sockaddr);
: b8 m' ~$ Z; E% ^; o/ o7 Q - memset(recvBuf, 0, 100);. |3 P' ?5 S9 p$ ~
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
8 E$ ~" O2 r+ ?% C- Q% I - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
* V: }3 F) T2 `4 a$ [ - printf("Client data is:%s\n",recvBuf);
" l( m( u+ n* k* v" ` - close(sockSrv);. e- _' D7 y o X6 E8 R* \
- return 0;, |+ c* T7 B9 z8 ]
- }
复制代码 6 I! D% o- D6 a
; k6 Y4 Q2 j- \( n2 s
" v! t, X/ L( R" p1 x( L
1 P; p9 j8 y8 w9 Z# p |
|