管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
. c3 y' e; F' A0 ]4 ?7 I: N#include <sys/types.h>
, @' b% s/ c! ^0 i5 e: X#include <sys/socket.h>
+ m. \9 r' b& X+ G7 v& M#include <unistd.h>
; b$ C3 o3 ~# ?( s. m2 ?#include <netinet/in.h>
/ G) v, k% p( I- ]#include <arpa/inet.h>
: I1 P% b8 c7 ]% R/ w* i#include <string.h>
$ w4 F2 k* @6 a! X6 }6 y#include <stdio.h> % ?3 {8 R( n L# f
int main() {$ g: m3 U4 k0 N- ?8 L: t% f0 O
int sockClient;2 o; b! G, v5 O4 W+ Z7 \# u
struct sockaddr_in addrSrv;& m T5 {3 }/ D }
sockClient = socket(AF_INET,SOCK_DGRAM,0);1 J6 c0 P+ ]2 ^! f
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");8 ?( R2 p& m6 L% m" |
addrSrv.sin_family=AF_INET;3 X/ R" Q! t, _: u2 M1 s
addrSrv.sin_port=htons(6000);7 n5 I( d1 t# t: k2 ~
while(1)
2 z4 u+ S+ e+ u+ }- { {/ W( P1 B4 ~1 {5 o
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));1 z1 h$ W5 N( W
sleep(2);$ D' [: t/ ^" U! k- ]
}
8 x* d; Y5 B& I7 a3 X7 m5 I close(sockClient);
/ h$ p$ k" q1 R& ]# E return 0; / y2 m4 {5 P' P2 E+ u9 G# E' r
}* M& S, K* I1 M. y
. o$ [2 g9 }0 i, ?
2 C( [! Q3 S8 H4 u9 M# K a客户端:- #include <stdio.h>
2 W, t9 Q" |0 o - #include <sys/types.h> ! x$ K" \: V" ^3 [" D( g
- #include <sys/socket.h> & Z$ E1 |! G( R3 B; {
- #include <netinet/in.h>
) B; x5 ]* j8 k% O - #include <arpa/inet.h>
. p" _: Q; _$ q4 ]) d4 S( G - #include <string.h>
0 T( n3 P+ r5 T - #include <unistd.h> : [7 P. O, N4 z5 t% W) [
- #include <fcntl.h>
8 R- H2 ]2 ~+ k( z) \; B. u" B - #include <sys/time.h> 8 w& t# X, |3 T6 T0 r c; c9 c
- #include <sys/select.h> 2 S) N/ E* o: \7 z5 _7 N# f2 U5 f
- #include <sys/ioctl.h>
: I+ C1 j' n1 u$ ` - int main() {2 b) s5 |8 T( H( N: x, D$ ?
- int sockSrv;
# B+ t; q( k, I8 _; O1 U+ d7 S - struct sockaddr_in addrSrv;! S, Q. U+ B* R9 c4 j* c2 C1 _
- int len;
% \ |. r) [) d - char recvBuf[100];6 F4 ]3 f1 O" E2 ]. v6 n2 S
- scanf("%s",recvBuf);( \) B) x" i, X) m$ W
- struct sockaddr_in addrClient;$ C- d6 x$ n- Z3 F8 U
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);" W( [# s3 O9 h3 A) D
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
2 \6 z4 k' C: h! [ - addrSrv.sin_family = AF_INET;
" i! t' Z+ F* k& F; K6 A/ ~2 O; S - addrSrv.sin_port = htons(6000);
6 u8 i2 |, v: X/ J - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));# @: H5 T8 e3 @' D9 p, X: _
- len = sizeof(struct sockaddr);. r9 |0 T- P% Q" ]& s" ]
- memset(recvBuf, 0, 100);
6 q0 k% A% R6 c9 s' r5 V - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
6 }, ~ x* ?0 V ?, K9 ] - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
& b* L7 B; [. i/ ^ - printf("Client data is:%s\n",recvBuf);
' _) p* ~! L; K- o% S - close(sockSrv);
& b9 Q2 T+ R/ z9 h0 @; U& f - return 0;
# k( ]/ J. @, V, i3 A - }
复制代码 4 r( ^9 n5 I* @/ \: P9 C
& a% ]" P# A A! E- y1 G1 u% j9 l; k) u2 G
% u1 W. M/ d% G |3 Z |
|