管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
. O' `9 g) r5 R" Y/ ^3 E7 Z#include <sys/types.h> , R- @ ]6 N, C
#include <sys/socket.h> , C3 e3 v9 Q! c# {7 u
#include <unistd.h>
1 U0 @" w. h, {, j& A# P* m; ]3 D#include <netinet/in.h> - ^% Y$ Y/ D6 E" i' g( {3 v9 C
#include <arpa/inet.h>
8 M/ W+ ]8 }1 a |( X6 e#include <string.h> % r4 W! l2 O* {# S) ~1 O. K3 W+ ^
#include <stdio.h>
1 B4 U3 W& d* ^& p {8 D- C$ Rint main() {' [0 ?6 g) Z& Q$ o7 q: J# w4 d9 {- T
int sockClient;
/ T. k7 C, A8 k struct sockaddr_in addrSrv;
1 W* S* f+ Z7 p' R9 \9 W# a4 [+ z( O sockClient = socket(AF_INET,SOCK_DGRAM,0);
1 i( y$ P1 }$ E9 C addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");0 L$ T; f: ^6 R% N/ V
addrSrv.sin_family=AF_INET;0 P& {* p; ]: T: s: A2 F( Q+ o3 ~
addrSrv.sin_port=htons(6000);+ T' {. R+ Z6 k
while(1)
6 S( w8 `- g& @ {
9 E( ?) A6 C y( P1 ~ sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
, S( d2 \4 M: _" B8 | sleep(2);
9 ]* a. u& c8 k4 p+ L1 r9 e, a5 C }
" s2 ?4 d$ O1 [2 g x5 F close(sockClient); . D) P" S! ]7 _5 N, Q
return 0; 4 h4 \; D6 o- Y* k
}
9 e9 a9 L: R( y# k5 ?. X+ O3 I, ~: B8 W) `8 v3 N
% ^% U. o0 N8 {客户端:- #include <stdio.h> 9 c# F) |7 j8 Q) J: s) r5 k
- #include <sys/types.h> - {( S# E. H6 x. w
- #include <sys/socket.h>
& b- h3 q$ b; K. i1 t - #include <netinet/in.h>
0 \: o1 X; R3 i1 q+ y. K - #include <arpa/inet.h> 7 K, j+ i6 N% S/ X7 R$ e0 e
- #include <string.h>
7 j" V. S5 g+ ^ - #include <unistd.h>
$ E4 [( w: S7 ^0 J) `5 n - #include <fcntl.h> " P* [2 A% K* w9 @1 @1 ^( n+ s9 g
- #include <sys/time.h> s0 Y6 ^5 C7 i
- #include <sys/select.h>
$ f7 o9 w. E, u3 _ n - #include <sys/ioctl.h> 7 `, y4 X; S/ I3 \" F# U* E! w" d9 O4 s
- int main() {& X) ?+ U; c. ^0 L" Q
- int sockSrv;
. K! F) J2 y* w" }4 M6 U0 W - struct sockaddr_in addrSrv;. ^( T7 s f& T# K6 s
- int len;
( K0 t- Y* V$ z1 a, s5 h - char recvBuf[100];, N' N& o- B) u6 k' a9 ]) L
- scanf("%s",recvBuf);
" q; Q# G) w: j3 x# V* e% u: J; |' r' B - struct sockaddr_in addrClient;
% w: q1 m. v9 _* H - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
2 m# Z7 E3 `% @; J6 k2 D - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
9 l& h9 X2 }9 N3 S+ j1 ? - addrSrv.sin_family = AF_INET;
( T& O* `, w) b/ V0 ^2 T - addrSrv.sin_port = htons(6000);) Q) d, z M. `- \- \" y. x
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
; b: o1 j) y! @! d - len = sizeof(struct sockaddr);
/ n. I" W: n0 }$ F - memset(recvBuf, 0, 100);
+ f, ~- v. T& T5 w - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);; g0 S2 I5 V* l" s# s' L
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));- ] n' d/ N* r+ z7 H4 u8 a+ ~
- printf("Client data is:%s\n",recvBuf);
% s B7 j3 |" R. i - close(sockSrv);
- T+ m# G& ]1 j - return 0;+ G! g, V$ i/ g" a8 ]0 `0 m0 Z
- }
复制代码
) R8 e: u( X# {: H; d, t) u2 d- [# f& B* }
- J7 U7 e) J$ b K% y- `0 u
! _7 s4 D, m$ ]# z$ U$ s |
|