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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
: n7 a+ g/ U% y: y* O! y( Z4 |#include <sys/types.h> 9 v/ x- b! R2 t- _
#include <sys/socket.h> & H8 D3 W/ `' w5 B, y, E
#include <unistd.h>
^; q- |- W( g4 r#include <netinet/in.h>
! v7 o9 o5 m4 s5 X d9 n#include <arpa/inet.h> + U- H3 e! E) V
#include <string.h> 9 e; Y7 u* |; P
#include <stdio.h>
# [7 @6 O8 x7 eint main() {7 t. l. C6 Q- Q/ B5 b- ~) Y6 l) {
int sockClient;5 ?9 t, B+ j7 h2 y* }* X5 [( m
struct sockaddr_in addrSrv;
, o3 }$ D+ _+ P sockClient = socket(AF_INET,SOCK_DGRAM,0);8 d2 }0 y* ?+ l1 W" ]) E
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
& o5 Y$ G" Y7 ^; x" { addrSrv.sin_family=AF_INET;
I, x Z e& ~0 ~* \; z addrSrv.sin_port=htons(6000);
; X% g4 X) @; Y+ E( B% Z" ^6 X8 R p+ _ while(1)
" ^8 O) @5 {( |1 m: F( g {% ]+ |0 J% e q- V: @+ d
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));1 G) e- q W5 m) V0 ]. K# k
sleep(2);
* ]# Q6 w+ y# Q& Y } 5 ^7 B( Q7 f9 e* k
close(sockClient); 5 T3 C* q+ K* A' @4 k- C
return 0;
+ q! i4 |6 z8 z}% X6 g; f; C% A, N
. D# t, b! J5 A: j6 o. Q& [" u/ R$ X1 s# M6 u$ q, Z2 Q5 d
客户端:- #include <stdio.h>
; `/ B, p6 O+ f2 E - #include <sys/types.h> 7 k7 J$ _3 m6 t3 u0 A6 p) t
- #include <sys/socket.h>
2 Q/ I- G) C9 w5 S8 X8 ~6 f/ ~ - #include <netinet/in.h>
) s" e/ v, R1 i% h# z1 f5 G - #include <arpa/inet.h>
: o! ~: d4 b1 D) e8 n3 [ - #include <string.h>
# H7 _/ K# D. G - #include <unistd.h> - n$ g, Y0 J {& H
- #include <fcntl.h>
! l7 ?2 S( }6 p2 h* K& ? - #include <sys/time.h> 8 D; d4 _' W7 I2 P |
- #include <sys/select.h> 3 z- c3 ]5 S ^4 R% t
- #include <sys/ioctl.h>
- _( }, E; k" y - int main() {
& |' i0 \ \0 G8 L - int sockSrv;
" A( \8 @* M! \5 V' ? - struct sockaddr_in addrSrv;
8 {8 ]1 N* _8 [; @$ j" i3 _2 b& A! u - int len;/ s. R3 P& F+ I7 X* o& h& n
- char recvBuf[100];
! [0 Z' a( t6 T) W+ A- `1 Q - scanf("%s",recvBuf);# w* j. Y5 U! g* K; I8 V( N# w& D
- struct sockaddr_in addrClient;4 U/ d. H3 r0 R' \
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);# M; n' U6 }; P( A( l
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
# @8 ] V" H; G/ d) i - addrSrv.sin_family = AF_INET;
! V& b: U8 k/ K - addrSrv.sin_port = htons(6000);
" ?* l H9 F/ [ - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));. H- f2 R9 k, T% X" |, b
- len = sizeof(struct sockaddr);1 {% E5 x. s u
- memset(recvBuf, 0, 100);
8 o8 R) I$ R! o1 f& | - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);$ ^% C, ~4 C( q# F6 i/ L
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
* f: n) i% x I+ D h0 I - printf("Client data is:%s\n",recvBuf);, k* X5 x. r+ U7 h6 k4 d
- close(sockSrv);
" I3 t7 ~' v0 A4 Z! n& D9 a - return 0;# [ j1 A3 M+ ~
- }
复制代码
3 [* M7 a: v) _% d8 u
$ W( }, q- c1 ?5 v( v
8 q z1 ]) m. C; u1 @" l' a# T& R) _7 Q$ J+ j0 M9 W
|
|