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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:9 \6 i' n( z7 w" R
#include <sys/types.h> * ~8 a, _! l( ~! K" R6 f
#include <sys/socket.h> 1 v. |9 d3 G3 x5 @0 v( \" v- O( Q6 J! Z
#include <unistd.h>
" U; n x8 D2 a0 A5 y#include <netinet/in.h> 8 Y3 {6 _1 u! H- p. a) z
#include <arpa/inet.h>
% A! e4 E& U6 y/ H$ h) J1 U3 z( d#include <string.h> 0 k& s+ c* n0 m
#include <stdio.h> 1 P! w7 {8 H$ U: n, d) O, N8 m
int main() {
/ p5 s. W4 L' l9 E n+ [+ j# @ int sockClient;, {) S. ^: f6 L% S4 X
struct sockaddr_in addrSrv;
P# h9 R" L% Y sockClient = socket(AF_INET,SOCK_DGRAM,0);( a4 G& `5 p, H7 ^2 b4 V- [
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");, M# @0 z# l3 o6 n6 S1 d8 Q5 ~
addrSrv.sin_family=AF_INET;
3 t: k7 [( W) ]6 v, L$ R addrSrv.sin_port=htons(6000);: m6 Z0 c/ k7 H
while(1)! s- g, { m: `+ g2 u
{
3 a U1 a' a9 ^7 C: p sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));) I! b1 I6 A* ~2 ?& n
sleep(2);
$ Q! L/ A- }9 q8 K" x }
9 M, A5 y$ d8 U. U9 U close(sockClient);
3 y7 \- V" z; ^6 M6 y) [ return 0;
+ P- v& f8 Q5 }$ ?# j}' b$ w# X' v) e% ^
4 _7 i( g ^& v" h7 K/ J/ F. k# Q1 ?$ z
客户端:- #include <stdio.h>
# x. `7 w; }. \ D: Z4 r1 e' Z - #include <sys/types.h> 4 h6 _+ P* U8 O2 |
- #include <sys/socket.h>
. \9 F3 D/ S1 C% q3 ~ - #include <netinet/in.h> & q2 ^8 o5 \0 P3 D/ r) e% T9 _# p
- #include <arpa/inet.h>
% A* b" y8 I: n, D0 L$ u W9 r - #include <string.h> 4 e) W! p& M, H
- #include <unistd.h>
; |) C d0 U; L4 c1 K0 K - #include <fcntl.h>
1 [: s. c9 j b- b5 H. Z# K - #include <sys/time.h> $ ^5 X- ^0 K- K- Y: `/ ]
- #include <sys/select.h>
3 ?8 q# o! }/ V1 x5 D - #include <sys/ioctl.h>
9 }0 D# r5 U9 n+ F9 H/ W8 R - int main() {
6 U0 G9 w( j- A4 y7 N8 c6 n7 ` - int sockSrv;
1 B4 S9 x4 P0 U$ f# l - struct sockaddr_in addrSrv;
3 v) M8 f+ E6 Y# [3 D - int len;; ?( r& R5 m% c; k
- char recvBuf[100];9 `- r% ]6 l1 ~
- scanf("%s",recvBuf);8 @+ i- }! I, ~1 Q5 r4 Z1 h! U$ t% @
- struct sockaddr_in addrClient;
7 w6 n1 ^& k) h - sockSrv = socket(AF_INET,SOCK_DGRAM,0);5 ^' Z* p5 O; Z: \5 ]
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
: L; b! ~* P8 `4 L4 k2 j - addrSrv.sin_family = AF_INET;- r6 z7 l7 o2 v( @# F0 a6 q3 v
- addrSrv.sin_port = htons(6000);6 K# m% @! i2 `: E1 r
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
3 o4 s8 m$ h/ O3 V; z+ d {, w - len = sizeof(struct sockaddr);
?1 \8 n3 e3 F. W* X4 _ - memset(recvBuf, 0, 100);1 j8 T" S6 P3 g5 Y
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);& n8 j# J; [* _9 q
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
9 m" S. E" {$ R3 Z+ N - printf("Client data is:%s\n",recvBuf);
" _/ P4 r/ W9 p L& o& A! d - close(sockSrv);0 e6 l. v% m3 p
- return 0;
$ b8 h( f1 X4 V: z3 `7 M' O - }
复制代码
$ |0 z6 Q' ?3 W) |4 R4 J3 l/ f
/ r" {& v7 ^, ]! \; x1 A* x8 t. e4 q Q! _
4 i D& }- Q( h
|
|