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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:$ O! C/ O% \0 N) s% O* O
#include <sys/types.h>
$ _+ [4 {4 H$ b/ I4 U#include <sys/socket.h> ) ~/ u) F' c I: y1 D5 D8 x
#include <unistd.h> ( V6 [! E5 b g! n' N- i
#include <netinet/in.h>
5 p) s6 o/ r/ }8 x: R#include <arpa/inet.h> d& S+ D- |& Q* ^
#include <string.h>
( ]/ ^( F& |$ c# P$ |2 Q" D3 S#include <stdio.h>
; V6 N) ^% H P+ h' I/ yint main() {
& n* Z" S) i, ~& M int sockClient;
8 N# W) P' ` K9 u- W struct sockaddr_in addrSrv;
8 \ d! S9 [5 c2 H8 ~: Y1 h sockClient = socket(AF_INET,SOCK_DGRAM,0);
F+ j. z5 C" @5 P3 f7 r addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");3 b4 O9 a0 ^- ]
addrSrv.sin_family=AF_INET;' `1 s+ Y/ z' q8 P) P( E0 D8 q
addrSrv.sin_port=htons(6000);+ Q5 s' |/ \- e0 g+ h
while(1)
! A3 b" E3 B! i {- V) c7 G, E! t) r# L
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));5 l. b( H7 `, C* e/ U2 [
sleep(2);
0 t8 r& X7 w |7 a U1 W }
# u3 u" d. |2 P1 h+ B close(sockClient); ! m/ I* [' j, Z4 d
return 0;
* ~: ^: k0 t; d3 k4 a}9 E7 p+ L5 M) u
* N- k! O5 |1 @! {# r
. S8 j$ Z' ?' h& L
客户端:- #include <stdio.h>
0 v) B2 p# Q- C# V! E8 z# `) @ - #include <sys/types.h>
. v1 q" f" F/ t# |7 B5 p - #include <sys/socket.h>
" }. @$ u9 J! s2 S) w - #include <netinet/in.h> : Z$ _8 b# }/ d2 [* @
- #include <arpa/inet.h>
. O H3 W, @$ ? - #include <string.h> 3 W( H6 q% Q$ P# h) d
- #include <unistd.h> * B: m! W D0 `9 J% b, c
- #include <fcntl.h>
$ r7 t" Z: V, F# C; c& C - #include <sys/time.h>
5 A, f$ I+ R7 t S1 |' D- Z - #include <sys/select.h> ( c$ l E9 e m* F4 x2 w# I
- #include <sys/ioctl.h>
/ k9 m& d' r* c - int main() {
a4 a" N, Q- k, k" P - int sockSrv;
: n9 p) g0 i$ a$ t - struct sockaddr_in addrSrv;
1 ~7 w. [. J0 `: g: v - int len;
G( n+ O, k' W5 ~% J# s* R7 S9 o - char recvBuf[100];, R/ G0 K9 z9 [9 x+ A1 U" o
- scanf("%s",recvBuf);! e( ~- \9 g9 W2 h6 q
- struct sockaddr_in addrClient;
. N: s- B3 O* D: f* w6 s, H6 M - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
; E8 U# P/ `7 h: n - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);) \- L+ ]9 A F) |8 I1 J
- addrSrv.sin_family = AF_INET;
* D8 t- Z- p/ Y6 u2 A# W; q) W! u - addrSrv.sin_port = htons(6000);
% U/ x$ a& h# J9 B* k0 F - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));5 [* c7 z+ c0 e& U" S; }) e
- len = sizeof(struct sockaddr);+ K% H3 {7 p$ G/ {0 P
- memset(recvBuf, 0, 100);7 V( f, b, R S3 r
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
5 o9 n8 z. V7 `! a - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
' d2 a8 s% A8 n- |7 I& G - printf("Client data is:%s\n",recvBuf);
4 B4 }; R3 N; Q3 k, y7 ` - close(sockSrv);
4 L n& p7 T1 L& I - return 0;
0 y: t4 R- N+ h& r - }
复制代码 5 h- s- {4 B/ E1 S1 G
- J& @4 z% H7 x# F6 j$ u q$ G L: B! B2 C/ q! R- }7 B
0 x" W6 \' z4 L, h5 O
|
|