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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:% b6 M& f" }1 e5 S7 k6 E
#include <sys/types.h>
1 o5 ~' F. L8 k v#include <sys/socket.h> # P0 k3 Y0 z. |$ @
#include <unistd.h> - }: T5 S& I' g8 S0 ~2 t$ i- I J
#include <netinet/in.h> & P; m" m; {* X5 V( i' P
#include <arpa/inet.h> ! _& i7 F/ P6 {5 E/ C& P) x
#include <string.h> ; H1 o7 g+ }1 j9 Q& h
#include <stdio.h> - N7 I, I. \. T0 x, D; E' ]
int main() {
. c% f7 \6 u% l9 ~! m& @ int sockClient;, y. z5 j0 b) e! ^4 n9 C" x
struct sockaddr_in addrSrv;1 W/ E3 P2 k+ Y7 _' g& u
sockClient = socket(AF_INET,SOCK_DGRAM,0);* h% I; l/ L8 \
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
# E7 [ r6 n* b! N& o& f2 a J addrSrv.sin_family=AF_INET;
u& T4 S. H' Y, ]. H8 M8 r addrSrv.sin_port=htons(6000);" {5 Q$ @) f+ n7 V6 ~- J" T1 d, i
while(1)% R# N' P4 } i4 U, V
{
8 K- |3 Q W# D1 H- W2 y sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
) d; i5 _6 S# l& Q sleep(2);& t* b. s: a+ w, O N
}
) C8 S% h3 Q0 r$ c: Y8 f) C close(sockClient); # k9 v# x# o8 E; Z% E* w) _
return 0;
' r7 b( G @1 K& v( u3 V}
' @9 Y, u5 U& r' b7 I3 V! | Z' z4 r% I4 y+ t m# n7 F$ ^8 N) q
& a3 H3 x! [$ R$ g$ d, \. ~客户端:- #include <stdio.h>
; t$ l5 H$ j/ b' ^3 p/ x9 t/ @- v - #include <sys/types.h> O9 R( c- |/ |: M: `
- #include <sys/socket.h>
( x# O3 ^! i+ I/ C0 a- j8 x. j) G9 V. V - #include <netinet/in.h> % ^; o$ {8 G* w! o$ _2 o' E3 u5 B6 R
- #include <arpa/inet.h>
) o9 K6 A7 U* e; Q - #include <string.h>
8 f% v; ]9 `3 F% [ - #include <unistd.h> 1 y p; G: ]2 H* f! A8 k
- #include <fcntl.h>
, ~! z. G# r; D1 j& e( v1 P4 A - #include <sys/time.h> 6 P5 _% A" N" z4 |; i3 u( G
- #include <sys/select.h>
0 x. H! x |) _( @ - #include <sys/ioctl.h> ! O) L9 u$ h" R- M- z) S+ C
- int main() {
: S+ R2 J8 b$ @ f- ^5 ]5 @ - int sockSrv;
2 {) m8 g# [/ C( m7 Q8 S6 Q - struct sockaddr_in addrSrv;1 C' c3 o3 H5 E3 X# c6 t
- int len;9 \/ c4 _% s$ }( q! s: N1 f2 P
- char recvBuf[100];3 h* m: j! z( z; r4 V( \2 C
- scanf("%s",recvBuf);
: m4 n1 z/ F) U2 B8 m2 n - struct sockaddr_in addrClient;/ W! G2 A' S, B. K( }1 w1 p
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
% ]- D9 n% `. Z0 H - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
; @1 @6 J7 N5 @5 a0 V - addrSrv.sin_family = AF_INET;: s. e" h( a3 P D
- addrSrv.sin_port = htons(6000);
6 ?6 X4 j5 T0 Q* C7 t2 {0 N0 i+ P$ f6 m - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));8 \9 ]& _$ g6 S/ v' B; \
- len = sizeof(struct sockaddr);
5 M/ o- v+ i! b R1 G - memset(recvBuf, 0, 100);3 m: G) N, G- e- w0 Z
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
2 I* R* t9 G1 y0 K/ J8 u - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));6 }! Z7 i: L, w6 p- x( B1 @9 x- c
- printf("Client data is:%s\n",recvBuf);0 c, e% r: s' f9 ~) X, L
- close(sockSrv);
6 u' P# n E. [$ d - return 0;
9 F1 m' G: M, F: p4 |& C2 { R - }
复制代码 & {2 P; }3 [ E' M. v% H% ^
% [# R* Q$ o2 k* k- s/ h8 P
: k8 Q- R* f1 E3 v k: b
5 b; f" v8 P0 O$ z$ Y |
|