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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:2 ^# L. f' `+ i6 g) p" E" S
#include <sys/types.h>
0 D- I* A$ J+ S, V! D5 P. M& A, x#include <sys/socket.h> ) M+ f% W( E! d- z: ~
#include <unistd.h>
' r" D2 D* y+ Q* A* m#include <netinet/in.h>
( U' U" A7 z( _, K) b" d5 W#include <arpa/inet.h>
# A. y9 i* O/ Z' M- O: h#include <string.h>
9 f- A. r+ E( X% d#include <stdio.h> ' F* y: [# c$ h. K: O5 ~/ n
int main() {1 _1 K, x! j- x6 p
int sockClient;
0 Z9 q$ e( x, r! _. i1 Y0 G, m struct sockaddr_in addrSrv;( q$ b" y2 w" I; q9 E% H F& @( |
sockClient = socket(AF_INET,SOCK_DGRAM,0);+ C1 o8 @+ z/ U1 F% `# z
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");# g* r9 X7 }+ ^0 a9 I
addrSrv.sin_family=AF_INET;
$ T) t; _5 D9 w6 C* ?8 { addrSrv.sin_port=htons(6000);' {& Z( d0 g( G, f
while(1)# |3 R B/ j% {2 b1 P
{: U; `4 g; ^( `! j; y/ P
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
" \+ [$ [/ Y$ z sleep(2);2 p# l2 g3 r5 R* H: z( x+ ^
}
0 M* C7 f% W! n* C% z. E8 w close(sockClient);
/ t5 |8 d1 V: G }) T$ a8 X% _ return 0;
' R1 y J. m q( J0 o* Z; L}
, c" z$ i8 J6 b$ U* _3 W# j$ X; H. D0 @$ v+ p6 `& K
+ L2 X1 r' }+ X* Q8 N/ i: y客户端:- #include <stdio.h> 6 ^+ K9 p( L, i" N& a6 N1 `
- #include <sys/types.h>
- _! F3 a0 m2 V - #include <sys/socket.h>
, ?2 Q* ]5 [5 c! L4 Y( G; h# c( [0 c - #include <netinet/in.h> $ x+ b1 a% g% ]1 K2 Z, M0 _
- #include <arpa/inet.h>
* X6 I& n5 f7 q' | - #include <string.h> : N/ e4 Z. \- K4 |
- #include <unistd.h> 6 d) W0 V+ b. ^& ~2 ^
- #include <fcntl.h> 7 t" k8 G( S0 n5 e* k* H% F
- #include <sys/time.h>
- g4 z+ d7 H7 e4 v - #include <sys/select.h> 4 P0 Z- U7 f' \2 a" _: g2 u8 Y% ^
- #include <sys/ioctl.h>
\% B. Q! k" d/ k, v" G4 _3 }" g1 F - int main() {
) s- S- m" p9 w" W - int sockSrv;
' C1 l9 p' R+ e% p- p( \' D - struct sockaddr_in addrSrv;4 G) R% L& V2 X3 i. E3 C7 U2 {9 j
- int len;5 @, V8 s) k; `" L8 C$ R& L( _
- char recvBuf[100];% r O6 D, i4 P+ b3 \# B' W2 v
- scanf("%s",recvBuf);- p: u0 b$ s* P* G& p
- struct sockaddr_in addrClient;" s( {, \5 |, a8 m- \, e$ S
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);5 w1 m7 G6 ]4 A8 I- `
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
1 s8 `- b) U1 R" `: B8 Y( b - addrSrv.sin_family = AF_INET;
+ c h, `9 z+ a( e - addrSrv.sin_port = htons(6000);0 e# ?5 j$ ^& | z+ p) g) C
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));, b: d0 n8 _7 A
- len = sizeof(struct sockaddr);, p+ B" y" ^0 C+ U9 G' W
- memset(recvBuf, 0, 100);/ F2 N1 W- Z6 M5 k/ c: D5 r
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);$ D! B% q) z: ^) k
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
" A- p0 V; ^' K2 W% I - printf("Client data is:%s\n",recvBuf);
+ b/ I. R' _/ C2 H8 {5 }: u) d - close(sockSrv);
4 @( `6 W0 o) [9 G3 s - return 0;0 a( z( F+ j$ x( y! d
- }
复制代码 9 M) x3 r' x) g& A3 v7 E, Q
+ d& h4 ]5 S0 {. Y" [7 l J0 k
: a( b' f8 o% i2 K
s) ]- T1 g$ ?% M& u4 c2 ]) f |
|