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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
- N- ]( Q) g1 v# N& j- _- b, o#include <sys/types.h>
3 m& S3 A+ Z( e( G" R% s( O( _#include <sys/socket.h> , Z0 U% U8 T$ `0 J, _& @2 H9 f
#include <unistd.h> 7 z. ?% i2 a' h) M' N
#include <netinet/in.h>
N/ \* a- n. E/ R7 g6 Z#include <arpa/inet.h>
" L; ]2 [# Y" \" ]/ Z( Q#include <string.h> ! H1 h7 }& r2 Q5 _8 h
#include <stdio.h>
6 N+ a- }, b+ _* sint main() {0 N0 J V; B( P: X6 r* n; C* k
int sockClient;
6 a* s1 P& {) s2 j struct sockaddr_in addrSrv;
; W( a$ G# d2 T' h# q sockClient = socket(AF_INET,SOCK_DGRAM,0);9 Y2 P+ v* H, l5 e- ]- V F
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
' j& `8 L3 L8 Q0 O9 I addrSrv.sin_family=AF_INET;1 f5 a; U' ~6 @" F1 g) P( M( X
addrSrv.sin_port=htons(6000);
( {2 |# S* K2 b9 P while(1)
) S) G3 b$ w- k5 n- y. e- ?% \1 ? {; ~& W2 Y' D, i8 |" ?2 F2 N
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
0 ~( S1 C2 N8 f1 _% ]! Y- { sleep(2);
. k; F& \6 M3 f/ m1 |# y } / i1 b0 k* L8 Q$ d+ b) h* i. x
close(sockClient);
, Y$ U1 t* q# q' v* X7 Z return 0; 2 e/ ]/ z0 z5 W6 f8 ~2 }+ W
}& Y* }" x: \8 p; n* i/ V/ J$ m% ^
* g$ c5 b4 o. G6 G1 Y
- G+ X7 D. h% q客户端:- #include <stdio.h>
4 C c5 K0 c5 b0 ?: P) v5 B$ W - #include <sys/types.h>
* s- U/ S- z8 @4 t8 ~/ a T - #include <sys/socket.h> : ^# M" S/ [2 B j( ?
- #include <netinet/in.h> 2 @8 Q$ |# C9 g& R5 s5 [7 R; P" l
- #include <arpa/inet.h> 7 W; A( E! ~& \' Y4 G, f; p
- #include <string.h>
; C4 u' [8 G1 b5 D+ K8 Z - #include <unistd.h>
# l- @0 x. \7 Q: B F E" W - #include <fcntl.h> , e* R0 [1 @# w0 Q' o Q
- #include <sys/time.h> 8 h9 [6 b2 l4 o! a& @9 H# u6 ?
- #include <sys/select.h> 6 ~, M$ U# r% `+ {0 q
- #include <sys/ioctl.h>
5 C9 Y, |7 X+ w" a - int main() {: i% f l; h) D( H" A
- int sockSrv;% \) g1 v# X7 G7 F, \
- struct sockaddr_in addrSrv;
. P, {4 w0 P( w - int len;
- A7 i' }: @+ f3 X- B- J$ A, ^ - char recvBuf[100];
, O* T) m2 e8 m7 i0 v; Q+ I' @ - scanf("%s",recvBuf);- r+ H8 ~: n, |2 {$ L
- struct sockaddr_in addrClient;0 P- G9 Q2 J$ H, e% `
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);3 J9 s% K/ l! g4 I
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);- X9 K5 p# |1 N6 v% M9 l- w# C
- addrSrv.sin_family = AF_INET;5 H, d/ e% @9 I( n
- addrSrv.sin_port = htons(6000);
9 e1 ]- }* Q9 O1 r- B+ |# z - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
5 A7 p% @ h* G- Q" ~ - len = sizeof(struct sockaddr);7 ^+ ]0 c+ p% K3 W) Z% z
- memset(recvBuf, 0, 100);
3 i) W& ^( h8 }/ X - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
. d8 e; n, b0 r8 d$ t - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));3 [, e; m3 t4 N- A6 f1 I# {
- printf("Client data is:%s\n",recvBuf);
a* }8 F }+ o - close(sockSrv);5 Q3 p' d h: U$ c' u
- return 0;2 n% F1 K) u( s
- }
复制代码 ! o5 m0 P' x; W6 a3 J T% v9 A5 ?
+ d& R, v# y! C6 U+ x& _" s, b- x
/ ?8 P/ w' q7 _% m! E5 N
|
|