管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
2 _1 _! {8 `. D6 W- p; l" A @#include <sys/types.h> ) Q- P3 ]% W/ p2 i9 }
#include <sys/socket.h> " _8 N1 e, B( X: |4 p& @
#include <unistd.h> 7 E% F- o) z: \) x
#include <netinet/in.h> ) [! w$ d8 u5 a/ Q, W$ U
#include <arpa/inet.h>
% q$ V6 z! u E7 C#include <string.h> 9 D: b' D/ ~5 m3 c2 ]
#include <stdio.h> 8 Y. H) b( r. D- N2 w8 J: g- Y
int main() {
* [* A0 E; f' c4 _ @" A. \ int sockClient;
4 @& Q; [: ^& J { struct sockaddr_in addrSrv;
' e6 k3 F Z, Q! F0 L) Z; L2 ` sockClient = socket(AF_INET,SOCK_DGRAM,0);
& R+ _$ b4 S; ]2 I$ W/ ? addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");0 w: j) [3 H0 `% u) H
addrSrv.sin_family=AF_INET;
! X" m5 y0 _( W# [7 `; C& z addrSrv.sin_port=htons(6000);% \$ H. t2 }% C: q- b& M
while(1)! i; p+ g" L1 h- b0 R# [5 }% f% r
{0 x7 e" o! L: O( {! l' _4 s
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
) b- Y& q, {" W( h$ v sleep(2);# y$ b4 p' k: ~ T# f
} ) ~9 w5 Y5 u s* s X
close(sockClient); : S! K5 W: I3 N
return 0;
; I. C( R! @& b: u, ]7 E}/ K3 R- Q' H' v
* `/ b* Y# h$ a9 y
4 S3 \7 D/ r5 z客户端:- #include <stdio.h> 0 |2 o4 `- O( c2 w" z" I" q: M
- #include <sys/types.h>
/ X& {' J* i; L( [1 |( { - #include <sys/socket.h>
/ g' e/ P/ j- Y2 B - #include <netinet/in.h>
/ C- k6 ?" S p9 {6 A- r' X2 ] - #include <arpa/inet.h>
, S5 u. _# z* T; x- G% _; ` - #include <string.h> 0 G% Q. V, m* t) ~
- #include <unistd.h>
- |' d% b5 k8 m4 ^8 s - #include <fcntl.h> ! x( l, H- s" G4 \) M' u
- #include <sys/time.h> " \' \% f8 ~6 d* \) A1 P
- #include <sys/select.h> & B$ l' f; C e5 C
- #include <sys/ioctl.h>
/ S4 C- d# F& t, Y! t - int main() {" {5 Z+ ~4 C7 B6 s7 H% I) r2 k) l, [
- int sockSrv;
# U h( N8 o$ z: K- R0 G4 S - struct sockaddr_in addrSrv;3 W6 i" R7 W* H% @1 H7 e( K
- int len;
) ]9 t, ~3 a, Z( I" C - char recvBuf[100];* J6 M8 Z8 R _6 E# I
- scanf("%s",recvBuf);3 S1 _! y% e* ?4 O5 F
- struct sockaddr_in addrClient;: p; S: D, b4 F1 g3 A
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);( e' x. \% `: g
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);+ _8 i6 o+ |% f6 I$ T% s" u4 g" o) l
- addrSrv.sin_family = AF_INET;4 v/ B2 G6 `; o9 @& Y! e3 E' @& i2 C
- addrSrv.sin_port = htons(6000);
# @- E, q$ Q, h- J; }) F5 ^' |" U - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
/ p$ P* Z4 ^7 E" c- q; h/ P0 y+ V - len = sizeof(struct sockaddr);( g5 M( s! M, T; M
- memset(recvBuf, 0, 100);$ T7 a( R1 I$ r( S2 S3 f
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);8 V+ X3 g5 z3 W* Q3 \; |+ H5 m
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
8 \7 D/ _; K0 k/ @$ Z0 f" r3 G - printf("Client data is:%s\n",recvBuf);
1 j5 s7 R2 D5 E+ G0 r4 g# ` - close(sockSrv);+ w/ l1 {( ~' g0 N& ]. q& Q1 I# o
- return 0;9 ?8 ~/ L5 {1 d, m" V1 X
- }
复制代码
0 P8 W" p8 k$ i5 g# k( z: D* \" r
9 _+ z9 P+ O: A2 m9 N7 I% L9 e! U1 U0 L# i! Y
- \+ ~/ D w% k! { |
|