管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:2 o' N+ n. z# y, l' o7 |& e
#include <sys/types.h> % @' t- x6 V+ b
#include <sys/socket.h> + ^0 u, Y# ~) C' s4 X& w
#include <unistd.h>
+ C4 r5 ?- V& I! i5 A: D& y" R#include <netinet/in.h> * e$ ~/ P) ]" L, B0 k4 A
#include <arpa/inet.h>
; f3 M' K* h* A, ~#include <string.h>
* g4 n1 e* D U5 j" K x3 q#include <stdio.h>
" i- J$ |" M' |! B! p5 l) \int main() {9 b. L1 B' S2 x
int sockClient;; P7 D- S9 U2 {% \ t
struct sockaddr_in addrSrv;* }/ V9 s; [/ o" q3 _
sockClient = socket(AF_INET,SOCK_DGRAM,0);7 t6 }! ^: }& T; m) |
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
3 y" Q4 A- `( e/ A. k8 g addrSrv.sin_family=AF_INET;
$ \( l. t, a2 m0 f) x* g* h addrSrv.sin_port=htons(6000);7 X# p$ V4 I6 o& N$ M& p
while(1)
2 [. v ]+ [# G {
. W% I; N' d, h# I& |1 R! v sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));1 s* p' B0 ]6 A; L! o8 ]6 \
sleep(2);
1 C# }: N# y& a# c( V* {) l8 A( I }
: u x5 ^3 S' t* U close(sockClient);
5 {9 x" d# M" h; @- Y return 0; ) d) J& U# I% x* L
}
) q' R" {* f, g
; |+ M9 J$ m8 f; g) w' Z0 w( h! c' v" a
客户端:- #include <stdio.h> , z, c2 c/ \# ?! [/ d$ h
- #include <sys/types.h>
" O7 o2 k9 i4 g - #include <sys/socket.h> 4 e7 _7 ]' a0 o' o6 ]! `& }
- #include <netinet/in.h> 3 o5 W7 V* ]0 S( t! I
- #include <arpa/inet.h>
/ T2 b' W& S. \# ^8 c0 z4 a1 i - #include <string.h> ; a& g9 ?9 |# z/ T
- #include <unistd.h>
8 M4 s: x5 R; h8 m1 h - #include <fcntl.h> 6 W, |3 }- g7 d1 j1 f3 E/ {
- #include <sys/time.h>
3 i; _# h3 P: n1 H - #include <sys/select.h>
4 C1 k3 O$ K2 M9 o6 U' f% k9 C8 D - #include <sys/ioctl.h> K/ d; V! p3 w9 U
- int main() {
l2 E2 L$ F5 E! W" ^ - int sockSrv;
1 q5 S: s. u" S# N - struct sockaddr_in addrSrv;
# o$ J* V0 |, ]) a - int len;/ { T: a3 ]) M( f4 G
- char recvBuf[100];
1 A$ `' u; j, { - scanf("%s",recvBuf);
. G& p. B* u0 j: E1 w - struct sockaddr_in addrClient;
! b o/ E3 Z4 u" a! P( j - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
' e: j6 u8 j! s - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
& Z7 l/ q6 M3 V+ F* j - addrSrv.sin_family = AF_INET;
# {) J9 f0 o" s - addrSrv.sin_port = htons(6000);
1 e* a6 X; T l5 |& s9 r( X$ K' j - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));+ t" Y& A+ P; l0 {0 ^3 P1 G
- len = sizeof(struct sockaddr);, o" L# z( X& e' n9 @8 A7 J* {1 e( _
- memset(recvBuf, 0, 100);
3 z: K* W3 V3 n4 S1 W - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);0 c# v( X1 G* N* b; n+ O4 J
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));4 J6 b( s0 r2 C; a4 ?2 p: E
- printf("Client data is:%s\n",recvBuf);1 d+ X ], U% B- M, W) ~
- close(sockSrv);" S) _: ?$ [- \3 w+ ~/ D
- return 0;+ ~0 m# `4 I* x' J$ w
- }
复制代码
- b( e3 Q7 p4 f) p3 o/ c. @7 N' u, j& L F- `, k" q) V, z
5 Z4 | O) E* e1 i. I
9 I& W$ v" P: T |
|