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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:+ X9 R9 U6 z: I0 o
#include <sys/types.h>
# B n+ o9 N: {- O#include <sys/socket.h> Q0 j1 _) S- [/ _# Q
#include <unistd.h>
7 h3 i" T6 i b8 Y#include <netinet/in.h> 6 S, c- _$ j" @6 X+ Y+ P
#include <arpa/inet.h> " ^0 t/ b4 e' S. r& M
#include <string.h> 3 O" N8 v( n* @
#include <stdio.h> 8 `0 ^- g! U7 D4 {+ |
int main() {
" {2 Q" _5 R9 } j& F int sockClient;
% ~6 A4 n5 y4 G; N3 b! X8 } struct sockaddr_in addrSrv;
" ^6 x+ f* e/ H$ {. H# }0 s sockClient = socket(AF_INET,SOCK_DGRAM,0);/ f5 X' w( i* a2 Q: {& D B
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
W* u) d9 V8 s5 o2 F addrSrv.sin_family=AF_INET;5 T& m. L, v7 ?" }: n
addrSrv.sin_port=htons(6000);
4 o; g2 u9 S& ?0 V- P while(1)
4 T/ z, k* _9 J2 A, ^: l# \ {
9 t: S" ?+ l2 ]9 K* d, t! l- K sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));9 ]2 O# L- l, G8 |2 Y- ^
sleep(2);
( }5 G: l# e Z1 D }
! P/ u Y; |# H1 Z3 v* ` d close(sockClient); $ L; _7 X5 r- c: u: y5 X; T- S
return 0; 7 }9 `. X/ _, ~
}7 a% U8 M, `2 y# H+ O/ Y
$ P0 B5 F& n# ]- K9 a" j) O% L
1 C3 A4 e4 P9 I) ^- A, D) x
客户端:- #include <stdio.h> / H5 ^2 ^$ V* A. f
- #include <sys/types.h> , h$ Q* n$ ?. ~0 I; {7 _
- #include <sys/socket.h> " h0 |7 O/ v) G7 z- t
- #include <netinet/in.h> ( o& n4 v2 b( J5 P9 O p- F7 g
- #include <arpa/inet.h> ; \2 y7 X% F3 Q: i% X2 \) L
- #include <string.h> 7 k0 R3 n8 G/ M
- #include <unistd.h> 6 y; ^# O' k! \: w' l9 L# B, Y
- #include <fcntl.h>
+ M0 \) D9 u" ?' h/ Q* O - #include <sys/time.h> . p* n) \. V0 c5 e- a% \: a& B
- #include <sys/select.h>
& R" d$ j& b# B' d4 F4 @ - #include <sys/ioctl.h> . ~; N8 u Y9 T v( H/ O) u
- int main() {
6 I/ k7 {7 A# W: g- c - int sockSrv;
+ M0 K. y* x- r3 W* q2 s - struct sockaddr_in addrSrv;
% W T4 t a9 u' l% m; Q - int len;7 d. G1 B# Q+ b0 |: m; f
- char recvBuf[100];& }0 }" _1 A( O1 `( U. o: Z1 b
- scanf("%s",recvBuf); ]7 O( j$ H) _2 {: g# p B8 A
- struct sockaddr_in addrClient;
4 g8 {6 X2 _# N2 q3 p2 l# c/ J - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
2 g1 a& p9 b ]- ?! F2 L - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
z2 L: e7 C$ B1 Q& } - addrSrv.sin_family = AF_INET;; f0 m) E* M1 o, ^
- addrSrv.sin_port = htons(6000);" N' H8 X- k4 O! F' I: z O
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
$ S: w7 Q3 I3 m3 z/ G# z2 P3 F - len = sizeof(struct sockaddr);2 O) \* j+ }' v
- memset(recvBuf, 0, 100);
$ a! V1 [8 {2 B- X" B - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
- {6 I6 [" s) Z: L8 O. T- v - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));* \5 u. ~4 v* @% e1 O# \9 C$ s9 \
- printf("Client data is:%s\n",recvBuf);
8 K- F7 g2 u0 ~8 u - close(sockSrv);
5 t; s8 j1 V0 q$ ?( V* W - return 0;
, v% H: g7 s* X6 X1 L& d+ h - }
复制代码
1 Q% x( ] _ i; U0 l) |; d5 [ r. |! V( j1 ?: Y% m7 v
+ r: d+ U+ b0 w0 ?$ j. i' R
: H$ O" `' r! k& V8 f6 |/ n! K. Q
|
|