管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:6 ?' V/ M$ [, q( E; Y& Z2 @
#include <sys/types.h> , C$ [) d$ m7 K" Y7 K" S1 p
#include <sys/socket.h>
/ B: l. b: y3 y# T#include <unistd.h>
6 q6 t) d7 N& N#include <netinet/in.h> 8 A4 y: v% s; P! e! ?
#include <arpa/inet.h>
1 S/ E ?- f) q/ w#include <string.h>
& _: W. A9 G" a6 l#include <stdio.h> ; ^: u& K# U3 J4 v. {, w+ k. y
int main() {
3 R' N; h1 p9 [ int sockClient;
( M( n5 C9 n& g) T: k' h( C( i struct sockaddr_in addrSrv;1 @ F G& Q( X9 g# _3 i5 V# @' T
sockClient = socket(AF_INET,SOCK_DGRAM,0);0 c( N1 z3 @1 O+ b9 O
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");6 u" @* a# |% `* J/ r/ u' w
addrSrv.sin_family=AF_INET;
4 }) M S! |! R7 c addrSrv.sin_port=htons(6000);
# t+ K8 m3 ?) U8 ^. y/ I while(1)
% d& Z# `' \) Z% i* ~ {
* n! w, q# ~( }) q4 F sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));6 j0 ~ |9 t( v% s
sleep(2);. a$ l+ ?6 X! R9 z
} 9 L; _5 ^- w- v
close(sockClient);
{! w |$ x1 l/ ^ return 0;
) m9 x% Q, g8 T' D, ]}, ?3 C p h: M8 V- S0 f" s+ p: k
" g+ C1 _) m- c/ _) R
" d* c) t+ T$ j$ B V. I
客户端:- #include <stdio.h> 5 o8 Z k& _& B) ^8 k; y
- #include <sys/types.h>
- r; y- v) Q# [$ u9 W6 I - #include <sys/socket.h>
2 F, Y$ u1 Y' {3 k2 L) K5 n8 P. }# D - #include <netinet/in.h> % L2 E$ G5 u8 w+ J- R
- #include <arpa/inet.h>
. f% q r. Y; o% g7 b - #include <string.h> ) ^" v' L1 ?5 U1 q* |; ` M `
- #include <unistd.h> 5 y) b }9 i3 L- ^7 v
- #include <fcntl.h>
0 \8 `4 Y3 c/ J. K1 u$ U0 U4 o, ` - #include <sys/time.h> ! ~ u2 v0 s7 K. j+ }* ^; G
- #include <sys/select.h> ) P1 a/ U) C- b- q' G, `* ^
- #include <sys/ioctl.h>
- x4 t9 q& R. T- q- B - int main() {
* q# W1 o" ~, J; q! z - int sockSrv;
5 L9 p' ]! `& P0 F# D. l - struct sockaddr_in addrSrv;
3 n4 Z7 [ } J) V% r - int len;. L& a, L- D$ H- x* l8 p
- char recvBuf[100];, N% @! i0 Q$ G0 C: L$ i7 D8 d
- scanf("%s",recvBuf);
4 r' ?2 ?5 ]* Z( V3 o! |1 y - struct sockaddr_in addrClient; N2 M) N' j2 l( p/ ^
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);# {- ~5 `4 c$ d! F+ Z. K$ @* H
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
" g. W8 u% Y0 E - addrSrv.sin_family = AF_INET;
3 s3 |: N2 |4 J% ~3 s% v# f# _ - addrSrv.sin_port = htons(6000);
" q% p) Q1 I8 ^0 W# Y - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));* \0 y# U% I: X# B
- len = sizeof(struct sockaddr);0 o3 ~" G5 Q0 J/ Y
- memset(recvBuf, 0, 100);
/ H' u- d6 _8 |+ v - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);* f ?. i7 g6 i8 u2 S
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
- v) G2 u( C! B - printf("Client data is:%s\n",recvBuf);* c: C$ Q. J4 O' w( l* b, Y, E
- close(sockSrv);1 {' f+ P6 t0 H+ v- n0 Q
- return 0;2 E) H1 b# H# E' s9 ? i! r
- }
复制代码 ( y* \9 S! O# H$ K: a1 T+ j+ `
' O7 f( K. v" y# l1 J4 ~- s% ?; w) J8 b( B
' O% d1 b; J6 U |
|