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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
* i& V! Q# c# q+ ^$ y, c0 W! n: a#include <sys/types.h>
" x8 a4 b4 P4 @. p; J#include <sys/socket.h>
2 K/ Z$ ]1 T) B) h$ z) E. ?$ ~#include <unistd.h>
. ~$ i' x6 d2 p, E2 I3 V#include <netinet/in.h> % Z( q6 c* | e% Q$ V6 e
#include <arpa/inet.h>
6 ^3 b+ [" H# ~& G4 U0 {#include <string.h> 6 d3 ]/ J" n1 j; E7 _8 b
#include <stdio.h>
( k9 k2 j1 D4 D7 xint main() {
V$ u2 N0 o2 k% w! W( H. M; X+ | int sockClient;
! Q: z: f6 ~) `5 V1 T; Y8 x struct sockaddr_in addrSrv;7 X0 x; t% s& ~' c f" c* O( k5 R) m
sockClient = socket(AF_INET,SOCK_DGRAM,0);3 m7 `* p! \0 H3 [
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");+ S5 n# k) g" U
addrSrv.sin_family=AF_INET;
( h/ l3 D @' @8 r& _; |/ h" M1 e addrSrv.sin_port=htons(6000);# x8 Y, `- S$ T p$ g h) B c
while(1)
6 O! o3 W9 j5 D0 h {
7 P- V! M, z4 i sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));8 F: Q& b; f2 i3 M5 w
sleep(2);
' D6 r3 W% a& w# j6 b; Y } 7 _- |8 r3 W' t& R
close(sockClient);
' ^/ U' \! p* L( {0 I# { return 0;
3 a" [: O; u. A! r}
N# ]9 C6 O% W( D2 R+ K: w6 |2 @: E# l! h5 Z& V6 a
- M4 ~4 O3 V7 d% t0 K
客户端:- #include <stdio.h> 2 ~$ B$ [' J* o- D; \
- #include <sys/types.h>
' X0 V4 J7 C! g2 _" _$ ~8 @ - #include <sys/socket.h> $ e, J4 E2 }" ^5 S: k8 `7 @; U
- #include <netinet/in.h>
) ^( _% v% E. X2 I) K - #include <arpa/inet.h> 4 r( A. \2 L/ M0 e! c h
- #include <string.h> 7 D% H; d. p* u9 Y# d7 w; R' ?2 l: |
- #include <unistd.h>
! G' f3 ?% B: c+ T+ [/ [3 A - #include <fcntl.h>
, z' l0 D5 p" F+ e1 A' \' F+ H& R - #include <sys/time.h> ( f8 n2 I; F$ ~3 ]9 s: @2 L
- #include <sys/select.h>
5 E: M- B4 @+ U+ E: B! P1 l - #include <sys/ioctl.h>
' W9 O; Q4 I! h% ^" z; S - int main() {
; Q( A" o3 S. B3 _: O; x - int sockSrv;
$ u7 D6 r7 l9 M - struct sockaddr_in addrSrv;. K: m$ l! e7 z' m- m7 F) H
- int len;
Y+ R$ }# j! u! M$ {, F8 G - char recvBuf[100];
1 K* f6 }9 D2 [ - scanf("%s",recvBuf);
1 ?% @. Y8 S: K7 ]# D: G7 b - struct sockaddr_in addrClient;
9 U3 a3 J# ^1 A5 b3 E, g - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
( A$ z; e4 D9 S6 O( B - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
) `7 f8 d2 _. y' k! o* w - addrSrv.sin_family = AF_INET;: o; b, r8 @. c3 p
- addrSrv.sin_port = htons(6000);
1 G+ ~* A% d$ d; i H* K$ j4 L" R - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));9 K3 h" b! h* |- \
- len = sizeof(struct sockaddr);
" Y* z( _2 }1 l1 v9 \. N+ R. D- B: b - memset(recvBuf, 0, 100);
d- e5 d" ~: s" e - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);' n% X/ w9 E) E/ m) Q/ J* J
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));" b* ~! N7 J2 x9 p. H. A& Q* _( {
- printf("Client data is:%s\n",recvBuf);# F$ h* i" v( A+ I( f" t
- close(sockSrv);
X) I, d2 D2 n! R w$ G+ Q - return 0;
/ h2 m) \+ m5 W3 u& c8 e, }& } - }
复制代码 , d+ @/ S6 k1 h$ O: |1 x/ ~: ?
+ K0 R2 {- K" |8 o7 k
# U6 A/ A( g6 p& ^
+ K6 t3 O# S H& o" U3 H |
|