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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
! M- b1 x9 U9 I& z, e8 ]2 d#include <sys/types.h>
* d% b* K1 w$ r#include <sys/socket.h>
( K$ v; B+ Z; ^, c. F#include <unistd.h> 3 V: F" f8 f6 L2 K/ u* q
#include <netinet/in.h> / J$ r7 q) T `$ `' L) R, s
#include <arpa/inet.h> ; g! L3 @$ b. S$ J/ @
#include <string.h>
/ d# U C* ~1 q" \* y8 U#include <stdio.h>
& {; K1 X4 H5 \7 F5 w* I7 S" w# Q. sint main() {
( E% Q! c* ]/ \6 p( ?8 E( _3 \! a L0 z int sockClient;
' N- q" {- b W n# w4 Q+ p. \: ^ struct sockaddr_in addrSrv;
4 D, U y+ _% O sockClient = socket(AF_INET,SOCK_DGRAM,0);9 F) m/ j; Y- l
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");% Z: C' e* _# e: u$ ]
addrSrv.sin_family=AF_INET;5 g7 _3 G5 i6 L7 G2 i; ?
addrSrv.sin_port=htons(6000);
+ G# m0 W+ e0 O- m' G while(1)
. g/ ~/ ^' P0 X$ L {7 q2 x3 t3 z- e! c/ m
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
0 Q" Q* p7 C! T! {# a sleep(2);8 p& f P2 n' p3 U; L
} ; f* _- W c6 Z7 E1 H: W* H, }
close(sockClient);
- X* T$ q. t. Y9 Z9 D. T3 d. D return 0;
4 E$ T+ a/ m: R' ]% y}
& N$ a' [" u& h G/ u% R) Q; D
6 U4 a7 R7 a2 H3 F, s
& q4 T! }( b" q0 ]. X& o% z客户端:- #include <stdio.h> . ^+ E! e; w. ?2 c$ X8 D8 u7 b
- #include <sys/types.h> , w D7 W' C6 O6 {- ^ s' f
- #include <sys/socket.h>
; O: @3 a+ W R# e* x3 }7 J - #include <netinet/in.h> 5 R; k7 g0 N( x) F8 o
- #include <arpa/inet.h>
: A- N* g4 o8 [, ~) } - #include <string.h>
+ z& ^% g: w; @* C: K4 { - #include <unistd.h> ! Z e. W3 Q* W* @
- #include <fcntl.h>
4 R/ t" v' |2 c4 r - #include <sys/time.h>
4 k2 D- }0 y" s& n K* [2 s. e* c - #include <sys/select.h> 7 w2 C) s- H& O, T; S7 I
- #include <sys/ioctl.h>
/ \# C1 z; A6 V1 H$ a6 X6 V - int main() {) v) P3 ~+ I- A, u
- int sockSrv;
6 H1 h! |6 ? Y+ w7 Y; i. j6 l - struct sockaddr_in addrSrv;6 g# Y: D6 s) H+ X# V I7 i
- int len;: r" F- K2 i$ G. B- d
- char recvBuf[100];! q2 `* a% \9 D' }- Q% p9 G# A
- scanf("%s",recvBuf);
: O8 k5 A8 G3 k5 w - struct sockaddr_in addrClient;4 r9 p$ K- P! g/ p
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
' n% U: F+ V) {2 ~' R4 g - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);/ Y5 E' g9 D) V( Z
- addrSrv.sin_family = AF_INET;( G" }0 {8 w6 m+ C3 ]2 E
- addrSrv.sin_port = htons(6000);0 ~4 s( G2 f" R X9 o
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));$ G3 v3 _/ c0 O" O' R
- len = sizeof(struct sockaddr);0 s! c9 u3 l/ e: E
- memset(recvBuf, 0, 100);/ x x+ u' b/ A! ?. E; b7 o$ u1 L; o
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
% X" |4 V4 i1 y7 I) y - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
4 f; \; q& D4 R6 Z9 i - printf("Client data is:%s\n",recvBuf);
* @8 o! [9 R" J- a( g - close(sockSrv);* n. M& }. ]+ ?/ Y4 }1 ~
- return 0;
# D- M, D0 c1 C7 V5 h0 o6 E - }
复制代码 & w8 _" o# J) | T
8 Y9 {. J6 H5 [
: _8 Z* v3 P0 L9 T
; l6 h- K/ x0 ~* E- @ |
|