管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:4 X: \, P8 Z- Y- e a: C& }
#include <sys/types.h> % i% \2 ?, u1 T K+ H0 f
#include <sys/socket.h> 2 {% c0 T! m1 G, u, W3 C( r
#include <unistd.h> 9 l$ f) u# X# ]/ H7 i/ e. O- c, z
#include <netinet/in.h> % Q$ G, B/ T+ H4 P% H
#include <arpa/inet.h>
|; G0 y) y4 G4 l* K& R#include <string.h>
5 U0 V& ~/ \! k, O" P#include <stdio.h>
. b0 [8 ]( h' N7 l8 J( F7 H$ ?& [int main() {, K- {" h0 N- |
int sockClient;& L( \9 z, i7 K U4 _
struct sockaddr_in addrSrv;2 M; X/ z* n* o
sockClient = socket(AF_INET,SOCK_DGRAM,0);7 x7 E: k: \- ^0 V& a4 @
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
- \5 }! B! ]1 \ addrSrv.sin_family=AF_INET;1 \' A: z0 v9 j0 R& N& r
addrSrv.sin_port=htons(6000);
4 U/ z& m- n! k/ @7 Z5 V2 A while(1)
+ B! {! a! g9 F+ L8 ~ C* M8 t {/ i. K4 E8 G" ~! Z
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
# X! F% a3 o( O0 I4 K% }0 x! ~ sleep(2);
/ N2 w4 B; ^' K @ } 7 v% J4 a/ A* a H
close(sockClient);
$ c1 a' M* G$ h1 q! \6 b return 0;
U8 B; d( b. c: y; Z: N" E8 {}6 K2 {0 A8 \8 m# }
$ c. A/ b8 h1 `; b+ l0 e
# ]9 Y2 a* e" q客户端:- #include <stdio.h> $ G+ C, a, n3 z0 x
- #include <sys/types.h>
, K$ [* a! c- y" ]3 t7 q! W# N - #include <sys/socket.h> 0 U+ d9 |* g; U
- #include <netinet/in.h> / c7 `# H0 F/ B' l5 I% _ a
- #include <arpa/inet.h> % {: U Y2 e$ v' m3 O
- #include <string.h>
6 F- C3 u+ ?0 N8 s' ]# x" r - #include <unistd.h>
; B, b8 e6 \( ?6 W) \5 z9 k+ N3 E - #include <fcntl.h> 7 O& R3 |" R# Z& M% {0 R
- #include <sys/time.h> ( \6 A8 y+ h, ^. P, w! ]* {# i! ]" g
- #include <sys/select.h>
/ e: m0 t7 N& R+ { U1 w" G+ @ - #include <sys/ioctl.h>
; T6 {" \; p6 D y5 `" a3 s4 ?; T - int main() {
. c2 q5 q' J- a# R9 w- Q0 `7 B - int sockSrv;: a& f1 G! P, M8 X) j3 P3 ` ?; ]
- struct sockaddr_in addrSrv;; v, \( e: u0 ~0 n% i9 p" x
- int len;$ ]! e9 @+ y. D5 ?! s6 l( x; ]) @' K
- char recvBuf[100];
& V/ H, e7 @* k - scanf("%s",recvBuf);
* `: Q9 u) p9 a0 g. p) T6 j* s - struct sockaddr_in addrClient;1 s1 Z2 t: q9 w6 Y) N1 H) r5 [+ S
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
6 p' q. G$ b( _8 [5 z! P - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
+ {! e+ W* d- a% k( q - addrSrv.sin_family = AF_INET;1 x0 G( {0 e: `$ b) d
- addrSrv.sin_port = htons(6000);. \, S1 C, s1 G9 q; h+ q3 c
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
0 W ~8 |3 T! ~7 ~ - len = sizeof(struct sockaddr);
8 s. z2 S" p0 P/ L, I - memset(recvBuf, 0, 100);
( d9 L) l7 |' f - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
. K' m- }8 S" \2 O - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));% y& v( m4 d; \+ K
- printf("Client data is:%s\n",recvBuf);
4 N# }8 ?, k( V$ D2 b - close(sockSrv);: Y% K3 p7 x) k" X# e% O5 @5 n
- return 0;
0 b: w6 w' I1 N/ W6 {7 o6 v* d$ { - }
复制代码
m' x1 d9 U: l8 [$ q" ?4 S9 W' d" W8 h' i+ e
2 D4 s7 I; s" D3 P0 D+ s
! Y- p0 H. W8 ], w& p2 d/ O |
|