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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:, Q7 }: C, G$ @; [& M t
#include <sys/types.h>
7 Q( |+ s+ i; Q4 [% E' `! i: K#include <sys/socket.h> U3 ]/ `! G: `/ s
#include <unistd.h>
$ H% I! W I# n" Y6 ?/ u: }+ ~#include <netinet/in.h>
: v, Q7 W$ k) D#include <arpa/inet.h>
9 s% S; a9 f: K) I4 W0 H#include <string.h> 2 f* @: k! m0 V. K( I' [
#include <stdio.h> # W: z* l6 p7 r R2 ^# B
int main() {. `1 [) y7 \. s- C
int sockClient;
- Q' ~, y% m- p. N0 X struct sockaddr_in addrSrv;2 k( X' H$ f& |) q- R6 F- I$ k1 Z
sockClient = socket(AF_INET,SOCK_DGRAM,0);
7 _, w Y2 u! J1 Q addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
+ q6 A A( [! P0 F: V% X" T' o, G addrSrv.sin_family=AF_INET;( i, l Q( U" l K o# H" x2 ?
addrSrv.sin_port=htons(6000);
6 g' Y5 `" A( ]' b while(1)* i4 Q8 t5 ?1 K6 b
{
. w7 p# L! Z. Q sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));: M; d) `- A. |, m: K( M
sleep(2);
! C2 w7 s4 \. D2 q3 j8 D } 8 r! j* V. f3 {2 |5 D
close(sockClient);
1 d# n6 ^6 ]$ U& S( @4 J9 M/ E return 0;
8 i" S' s5 ~' [6 v+ L( ?6 h$ r}
( x8 a/ j$ U& {. s4 B6 S2 l* A* c7 H3 ]
% M& L v- w5 P
客户端:- #include <stdio.h>
" L, G: S2 o8 w" I8 q* L - #include <sys/types.h> ! P) U( A* ?% t- b5 _# T. J
- #include <sys/socket.h>
3 q" J% K f9 K6 t# f& M A - #include <netinet/in.h> 9 c# t9 ^& i0 j& u; l- r: m3 {6 l
- #include <arpa/inet.h> ( p$ m- c4 U& G5 b, S
- #include <string.h> / J) ~3 e; }) t% o
- #include <unistd.h> 3 Y& N0 {$ q! [. K( A) V
- #include <fcntl.h> 0 s2 t. E6 o9 o5 w" I2 L
- #include <sys/time.h> 6 q" E. G( Y3 {- E! t, i+ l' O
- #include <sys/select.h> 3 l6 O# f/ Q$ a1 k, z
- #include <sys/ioctl.h>
0 X) @# ~* [7 a7 z; j) U" O1 N - int main() {
* |8 B* z, _ J1 p u - int sockSrv;- i3 `' V. ]5 A, A1 d ? O! K5 I
- struct sockaddr_in addrSrv;
, @8 x# W! y% R- z+ d+ ~6 G - int len;1 T6 a3 b* ^: i* U* C
- char recvBuf[100];
2 R0 T6 E+ _7 s$ ^, D B& E - scanf("%s",recvBuf);
% g$ G( v4 |) i) G" e& n& M$ v" A - struct sockaddr_in addrClient;4 i& f- b3 M* R Y1 R1 U0 @7 }2 b! D6 k
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);! j$ W7 s( ~# A) v7 `
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);, n& c# W% [' J; |
- addrSrv.sin_family = AF_INET;
! \3 Z2 h, Z, I @& R1 y5 p5 j) c" Z - addrSrv.sin_port = htons(6000);
* t5 L$ r7 Y7 j8 s5 A! ?8 y5 N - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));0 ?! P- F) a5 q0 Z
- len = sizeof(struct sockaddr);8 p( n9 [' h. r/ x* |
- memset(recvBuf, 0, 100);
. d0 ]+ p+ c0 n& O - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
4 E: W$ ~# @ K - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
7 L* h0 o/ N: j3 ]' a2 f& Z - printf("Client data is:%s\n",recvBuf);" {4 b* A. P/ r8 V+ J
- close(sockSrv);
# t: C0 K1 T2 l( { - return 0;: ?( F9 Z) a5 W
- }
复制代码
0 f& R( c0 Y5 Q0 H+ O' h" C* Q. F! ]( K7 A9 ^- l- f0 ~
6 g' z* q" C3 S2 S9 Z! k
& |* ?! J4 h' |& r% X |
|