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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:0 N% A- Z$ v$ f# T3 v8 t& J
#include <sys/types.h>
1 y( Z+ B- i1 q$ [( R# b#include <sys/socket.h> i* T' B, U, F! R, _* o, F
#include <unistd.h> " x& ]3 R; l' f" b0 }4 h$ o/ ?
#include <netinet/in.h> H2 l ?& M W/ u) ?8 ^- V
#include <arpa/inet.h> 9 ^7 j2 \6 Y( s' i) l4 h4 z7 H
#include <string.h>
- O% B6 D' m* b: V#include <stdio.h> , E- B9 z' Y2 ~2 Q! `" f! f, k) c
int main() {
6 Z6 E3 P" G$ W( B6 [ int sockClient;
/ n* ~: p3 E5 ^; z" o- l+ A struct sockaddr_in addrSrv;
9 K/ r# P Q* x: K& m1 g5 h sockClient = socket(AF_INET,SOCK_DGRAM,0);8 T+ a" g$ d- }& b
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");: p. r" s. n, L! p( ~( y* x
addrSrv.sin_family=AF_INET;
7 _& e2 v. D) t# f/ b addrSrv.sin_port=htons(6000);3 D, ?3 U3 E) e) M
while(1): t( r9 ]" |5 y L
{' Y% C& K7 G# m/ S, ]. ?7 m& w
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
8 L. t6 P# }" K sleep(2);( `8 c$ m) x& x7 [" J7 y* }
}
6 ?7 g" U0 B; m1 _ close(sockClient); { K6 [7 C9 v# P' G
return 0; : D, y( E! D6 b' D4 S6 v3 Z7 T: a
}# t; ?+ Y$ J4 F& V0 \& @* {
* I( X: u* c5 f3 b! }& l
^* U$ b! H0 Q/ v
客户端:- #include <stdio.h> . C4 w0 V' f( L, O
- #include <sys/types.h> . D: C* L! N x- h
- #include <sys/socket.h> * y; y. F: h% P) H. C8 ]
- #include <netinet/in.h>
L5 s! a9 O' x# @1 o% L7 l ^ - #include <arpa/inet.h>
% u7 _$ W2 \7 w% S& Y% u9 V8 R - #include <string.h>
5 O e$ y* i0 m( E1 `2 K, x - #include <unistd.h> 0 g( I, A! u9 T; E, y- l( \
- #include <fcntl.h> ' k8 ~( ^ S( H5 O/ }, G9 ]" @6 B
- #include <sys/time.h> 7 i1 w0 @) ~2 [; [* K! K! u2 h. W
- #include <sys/select.h>
4 ~. U b: `% x - #include <sys/ioctl.h>
4 C0 W7 j" k6 A s# P/ _6 l - int main() {) f2 }8 L/ o2 s: A( T, c( Z/ b4 j
- int sockSrv;
( `; S8 m4 i! O) j - struct sockaddr_in addrSrv;" P1 S+ t' ?( ]
- int len;
& n0 }0 V9 g0 I8 n% F5 B# D6 \ - char recvBuf[100];3 W( N- { E( ]5 Y6 ^0 o6 Y
- scanf("%s",recvBuf);
! @7 i, f0 U, J, W* Q8 s" Z& n4 ` - struct sockaddr_in addrClient;
9 b) _0 U0 E* S/ p( M. _ - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
; u4 i& O" t' B6 s; A8 i" F/ @# Y - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);! S8 H% H# U: J' c. h
- addrSrv.sin_family = AF_INET;
5 y7 {9 ?1 L( h: _+ _& B6 k7 l3 y - addrSrv.sin_port = htons(6000);
) U% G) b% r; j - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
/ k" X ]0 ^% a: c# o. h - len = sizeof(struct sockaddr);
6 b2 Z5 Q6 F! J+ H+ C - memset(recvBuf, 0, 100);$ z( i U& ~0 K; L" L
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);% _* t& w- D1 M' O6 ^
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));3 q% q. c2 B# `! L+ h: S# [/ p) Y
- printf("Client data is:%s\n",recvBuf);* R$ v: I* Q, d8 G: d
- close(sockSrv);
6 q& h6 |& y+ P4 e+ |- t - return 0;& O3 R$ @$ W5 G0 S9 U
- }
复制代码 ! u n6 n$ i" Z. M; ^% z1 Y
1 G+ m* t. g) h1 f9 {4 v! h
6 K3 o# n: Z6 ]: _+ g* j9 B3 ^$ R0 t1 I* v& Q g( d
|
|