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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
5 A' \& V- n5 P2 G#include <sys/types.h>
3 ]6 F, @% k2 A& }#include <sys/socket.h> , j: G9 j3 |; M8 l3 e$ n- z
#include <unistd.h>
/ I' J5 D4 X- _# ^8 Y ~ H/ V#include <netinet/in.h> ' a# l* W/ e) h) B) l3 u# i
#include <arpa/inet.h>
! W: _! ~ |( F! h#include <string.h>
( N3 A& l b( w- y% x1 t#include <stdio.h>
/ j7 E3 m! N& k# Mint main() {& p+ _7 R) K, p3 g& r
int sockClient;4 I. d* t1 L' M# R4 M& J
struct sockaddr_in addrSrv;. Y7 P% W; J2 v
sockClient = socket(AF_INET,SOCK_DGRAM,0);$ R4 q" |6 G, Y/ M+ Y# e( X
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
3 `, Q5 D" f! `7 b" B9 p addrSrv.sin_family=AF_INET;
1 O! j/ _9 Z# I6 P- i# E+ _9 @ addrSrv.sin_port=htons(6000);! d6 b" j7 ~. Y6 a' b3 h4 P: z
while(1)4 m3 k$ v, U2 B# S1 |. [
{
O5 @) [8 W4 \; C, h; n sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
7 i* k/ {2 C' c: ~/ E. _, r sleep(2);
: \( g* T' e5 t2 v) X* J: ? }
, A4 U( x7 E6 N2 x' q4 V close(sockClient); . t" V7 t7 q0 A3 x4 R
return 0; 1 j$ z) e* b `5 {& z
}
' Z" m2 }; q. P+ [) g
- @# ~: ?, {& G T0 e
0 F: ^# d& q/ W# K/ `4 k; I% G客户端:- #include <stdio.h> : K4 j* `/ z( E+ p
- #include <sys/types.h> 3 q8 t+ E$ G( n! x' {
- #include <sys/socket.h>
2 E9 j! H5 L1 S6 z" w1 Q - #include <netinet/in.h> * d6 Z: u* ^$ M$ o1 ], g6 ~% m
- #include <arpa/inet.h>
) M5 S7 o E2 j$ T - #include <string.h>
8 h* n5 v( L. ]3 c% v' X" t - #include <unistd.h> . N/ T" p4 P1 E! \4 c0 T$ V( h4 h
- #include <fcntl.h>
6 r) ] I5 l: q/ d9 F! _5 H - #include <sys/time.h> . N3 I. P2 c5 W# ]( Y; c
- #include <sys/select.h>
' \2 H% O `) H$ x2 I/ w - #include <sys/ioctl.h> 5 R, W, y3 ^; d0 E' f* r0 g, T- Z+ [6 d
- int main() {$ T- i+ Z; x( U: _
- int sockSrv;, x% T+ A) K3 f; o4 R/ O3 Y
- struct sockaddr_in addrSrv;
0 f( G y5 q6 \- @: G S - int len;
4 I& ^8 o2 ^' ]/ x: [9 k: [4 o - char recvBuf[100];: @* X% [. ]7 S' B# N+ e7 p' V
- scanf("%s",recvBuf);, |+ s- R6 G, G: X" o. ]
- struct sockaddr_in addrClient;
`3 ?% N9 e8 `+ x& w k - sockSrv = socket(AF_INET,SOCK_DGRAM,0);7 `1 U3 e" e+ }" L0 |' J
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);- S2 P* T( `0 K( a1 @3 F
- addrSrv.sin_family = AF_INET;
2 }0 G, f/ I. [ - addrSrv.sin_port = htons(6000);7 m2 }9 o" x/ k, B: _! I
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
, g3 X+ p8 p3 _; I$ a* c& A - len = sizeof(struct sockaddr);
" J. m' o6 [6 P* q. o& d - memset(recvBuf, 0, 100);
4 U) R( d' `1 H1 s, @ f9 q: s - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
6 E4 _! I* C7 ^: T - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
% W" b: t* P6 V( K" B# z - printf("Client data is:%s\n",recvBuf);
, F5 C0 p! _" y" S - close(sockSrv);) c2 C9 D) q. U5 H
- return 0;3 Q* M: R" D& a
- }
复制代码
" A; @% G9 r- K& D& p$ b
. l6 f. I3 ~+ a" T P( [" `& t
/ Q% J4 {' L' z* ]2 n `# a! M
2 @1 ~6 }3 d! T# O" ?; [ |
|