管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
, W3 Y# t7 H k- r3 p9 d#include <sys/types.h> ; _/ |! Y) G$ H- z: A
#include <sys/socket.h>
: t) J: @: g$ K! a. s8 Q0 e#include <unistd.h> ( R( k( K! p. M
#include <netinet/in.h> 2 ]3 F' I+ K( \! `5 Z' _$ h i
#include <arpa/inet.h> 5 D- D9 @; L$ M% s! ]
#include <string.h> P @& q8 W9 Z( }1 Y. g; i/ ?
#include <stdio.h>
, W# Z3 h" Z1 E( A$ yint main() {! ~& \3 _ w! u0 f1 o5 O0 `4 ]
int sockClient;
5 G& T: F* S6 v$ c struct sockaddr_in addrSrv;7 t2 M$ E4 b: H9 w8 f$ |
sockClient = socket(AF_INET,SOCK_DGRAM,0);
1 x+ N* \, m3 ]0 }' V( n( F# r9 I- U addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
* V! N o. |9 y( T3 u8 p4 M addrSrv.sin_family=AF_INET;7 w( |2 J; e. D
addrSrv.sin_port=htons(6000);
/ W+ f+ r H8 Y. R( s, y while(1)9 O1 [2 f' g; Y( \
{' S8 j) [2 q3 |$ T0 L# Q* a- b! a
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
* c8 O7 C! J$ X2 R5 g sleep(2);
7 L0 f6 B7 `4 t( ^1 e- p } % d9 x. K) J) F7 ~& [
close(sockClient); ; w" ]. y5 V+ [- c' m2 G: i
return 0; + o8 ^, U$ O* z& q5 M7 n3 X# k
}
9 T# J @3 c) x6 b: i6 J! ^5 W( Y" a1 b7 j& R2 ?
* I0 i/ ]" ^2 R' P$ M Q客户端:- #include <stdio.h>
4 [6 M% d& |' H2 @6 s - #include <sys/types.h> 3 u9 r! W" {4 c) K. X* n. ^( t. l. b: _; j
- #include <sys/socket.h>
+ r" `6 m+ F. H9 \; H - #include <netinet/in.h> 0 E. u' T" d$ f; ~4 ?% x8 _
- #include <arpa/inet.h> 6 s5 X' \6 L1 A3 n0 u) f6 x6 h% K" C
- #include <string.h>
! k% Q& D k; ^ - #include <unistd.h> + A4 k" \+ q4 r
- #include <fcntl.h> 8 n( e u+ W5 z# v/ [ s3 h3 M
- #include <sys/time.h> 1 W0 @, Y4 a/ r& L* P" j' E
- #include <sys/select.h>
. [/ r) B& ~# K* h# D* c - #include <sys/ioctl.h> 2 [2 k/ i$ H$ D
- int main() {
. B' [, |+ J; L - int sockSrv;
3 Q% b+ m+ q1 L: i - struct sockaddr_in addrSrv;
* z4 {/ l$ R3 u3 I& n% }, M - int len;
9 |6 ~9 ?( w2 h- D7 F: Y - char recvBuf[100];1 g% I1 ?, q# _# J% F" G$ m7 X( Z1 H. k
- scanf("%s",recvBuf);
! j& I' U* Z' I% r* @- e - struct sockaddr_in addrClient;
& |4 _. X/ L$ Y6 U - sockSrv = socket(AF_INET,SOCK_DGRAM,0);$ H6 I7 C8 A- C
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);- m k M. H3 c
- addrSrv.sin_family = AF_INET;
5 S6 p* F* M9 h- Z7 ~ - addrSrv.sin_port = htons(6000);
1 I7 e" a4 ^# j' Y1 }' J- J - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));2 f+ v2 R" ?; y( z$ v
- len = sizeof(struct sockaddr);
- w$ M! B, ^' n: R - memset(recvBuf, 0, 100);& A k8 _6 N$ h& p* @
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
5 \$ O. v1 Q$ i3 C) W - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
7 f1 ?0 s( `7 \4 D$ j) H% g# n- ? - printf("Client data is:%s\n",recvBuf);
& ?3 ]6 q4 z3 S% p! R( @ - close(sockSrv); M' t% v! a7 p Q
- return 0;- b' d1 X4 j+ e
- }
复制代码
" y; u3 [( W& i! ?. i1 u+ {+ u9 W [; A4 a& {5 ^) \. V& o
5 M+ [$ H" p/ l1 q Z) L* ]( Y8 d
i; k$ b" a7 h% W$ W5 l7 X |
|