管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
& k$ A* i, j& L4 r T3 P) @( q, V#include <sys/types.h> # M/ R3 z; H* }( i/ c5 e
#include <sys/socket.h> : ?: ]7 H$ \2 [! }; ]
#include <unistd.h>
/ J2 @8 }3 F( ^% D#include <netinet/in.h>
) }! w0 S3 O }8 m" c* R. L& Z#include <arpa/inet.h>
( t: r$ C' `6 f X, N0 h$ {/ ^#include <string.h> 9 S+ ^1 P0 r- o4 B* p4 ]2 M5 y
#include <stdio.h> : s* c3 n* O% h+ l: F& M3 H% Y
int main() {
& ]7 y( C" B p0 H) Y$ ^7 x int sockClient;1 ~4 R/ r' g, Q8 D0 s
struct sockaddr_in addrSrv;
: y; P' [$ d% C: ]9 ^- d) K sockClient = socket(AF_INET,SOCK_DGRAM,0);& C) |. B+ U3 s3 N8 y" t2 ^3 v
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
% f; Y6 v4 b( d% D" M( Y: p addrSrv.sin_family=AF_INET;
/ Z$ z; u: Y7 Y2 G6 \3 d addrSrv.sin_port=htons(6000);" t/ o4 J9 w% u9 |- V ^1 W
while(1)$ I/ |/ e, j! I1 s
{
a. {7 ?6 d0 [8 a3 T sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
: i+ P% s0 G; I! d5 D; J sleep(2);
! t5 S/ T. A/ e2 ?, X, f }
4 ~' K$ m4 S% S" n1 ]! p: m close(sockClient);
6 q% c5 T( d# I0 i& h+ \ T return 0; + O6 n+ U: H5 T% d* ~: P
}
6 g" r' j2 G3 S
1 j, R. p1 t Z9 u, P+ U5 N: J
& s( _1 s1 n. o3 A _$ d; Q客户端:- #include <stdio.h>
) ^: j, J; X' c# b: D& Z - #include <sys/types.h> 7 @& M' l0 s7 w$ f' m! C. Z' J
- #include <sys/socket.h>
& p+ V/ g7 i' N+ b - #include <netinet/in.h> - u8 N5 b% ?1 G3 S- Q2 L
- #include <arpa/inet.h> G% H5 L4 b2 d( W9 @$ x3 \
- #include <string.h> 0 \( w/ c, D' N) q( x! f
- #include <unistd.h>
, ~! G$ G: C/ i% ~/ V - #include <fcntl.h>
2 V6 p) L7 I) X+ Q - #include <sys/time.h> 2 h/ U" Q3 |, f9 A+ J6 j* X( N; L
- #include <sys/select.h> : F) y% t1 m0 J& k. w
- #include <sys/ioctl.h> 5 C, |5 e) G4 ]) L0 F1 C {. A j& v
- int main() {
9 z1 q& V$ `3 o% L: J/ A - int sockSrv; _' k+ y% I% a. f( S9 l: {; N) z! H
- struct sockaddr_in addrSrv;
# i' \" f; y# N% S& C5 W) d - int len;
1 X" S3 d7 \: }: b - char recvBuf[100]; R: s5 p* ]3 q9 M
- scanf("%s",recvBuf);
; N6 L# u. L# y* r& P/ G6 e - struct sockaddr_in addrClient;
1 q7 X* K" \& @' m8 M - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
' K" H' c' \( A, G& O - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
$ ?( {# s' l% E h( R5 o - addrSrv.sin_family = AF_INET; q) X/ e" L9 L" q
- addrSrv.sin_port = htons(6000);' o& x. }% @7 \9 K0 T# Z& P& x
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));- r3 c1 r" O0 G; e
- len = sizeof(struct sockaddr);; `/ L6 T) v2 B% L) V% i& P
- memset(recvBuf, 0, 100); x' F% G; e! |: ~4 s9 t/ j' N, R, x
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
, P2 b2 [( I0 o e0 [* F$ z2 a - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));/ S3 r/ g; z U) W2 u8 L( G% Q2 O! ?
- printf("Client data is:%s\n",recvBuf);
, [) Q6 ]% I8 g4 i7 [$ H5 A; Z - close(sockSrv);
( A7 O* m. z% r, w& r' c( B - return 0;# ]) o- e# F( c
- }
复制代码 / b6 G% G5 q* d! t
( A0 K/ a) o& y: a {
5 {: Z' H. R3 w ^0 x0 |% G7 s, O- Q$ K9 n2 v( d5 W
|
|