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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:% i/ q7 I1 j3 P1 o! N
#include <sys/types.h>
5 C" K0 A, ^7 Q0 p#include <sys/socket.h>
3 _1 Q$ N3 [; M8 r: O, N% n#include <unistd.h>
: D. ^% G" B; \3 _" d#include <netinet/in.h> $ ?5 N9 O0 |& `' g! \
#include <arpa/inet.h> * e# @5 E8 r. E( A8 R
#include <string.h> 8 X+ Z8 O0 e5 {: X2 ]
#include <stdio.h> % F) h; L( z+ ]. w
int main() {( L% `8 ]* K. ?- r2 ^0 A& q9 c
int sockClient;
" e' T v9 Y3 o; I8 x+ G struct sockaddr_in addrSrv;$ L! n" m Y) J4 l# Y! m
sockClient = socket(AF_INET,SOCK_DGRAM,0);
, ~! n5 ^' \" E; _* s. t2 Q5 \ addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
! B1 I3 \0 Z: t addrSrv.sin_family=AF_INET;
- n9 b3 q- m7 R% O addrSrv.sin_port=htons(6000);" `% Q! H8 Q/ B9 _& H( r
while(1)( l E. R2 w; `8 J( g1 g9 d4 V: C
{* S" g2 \- \" B7 [
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));8 v2 D9 a; V0 s! J3 z
sleep(2);
3 N. e* M! ]7 O( o } + s+ A/ f7 g$ R
close(sockClient);
6 M* v+ G! s) S* j% }- Z return 0; ! Z7 G9 _" h0 p% w. c
}
( P7 t2 ?$ k }! d) G
6 u9 G5 x5 V& e6 }* ^& Y* y
/ m3 [- o5 l6 M9 L+ h客户端:- #include <stdio.h> 8 W; D' c2 f* b
- #include <sys/types.h>
4 p3 `; w* a" w2 d- } - #include <sys/socket.h> & M. i- s( i6 `/ I3 [
- #include <netinet/in.h> % H7 w6 J/ p$ i1 F7 _0 ]2 i
- #include <arpa/inet.h> 6 l# S+ M& N B# l _9 `8 P
- #include <string.h>
9 X, t6 s, `' O* Q4 k0 C - #include <unistd.h>
) T6 J5 A' J$ m' g - #include <fcntl.h>
+ A! P6 \! {' F - #include <sys/time.h> 3 y! h2 T% m) P
- #include <sys/select.h>
2 S: p* V* A1 q" B - #include <sys/ioctl.h>
# r/ o7 z" I7 t! M) B - int main() {% M& n; g B' q( o. b; b2 L
- int sockSrv;% j! u9 ^9 k- y$ x
- struct sockaddr_in addrSrv;/ n# a4 w1 V; L) Z( m, b0 \
- int len;$ Y+ R& A* W( U/ g6 V4 |& K' k
- char recvBuf[100];
$ y/ j) h9 _8 o" \2 h2 S3 X" L - scanf("%s",recvBuf);( P& s. |- D0 N7 G% p) z
- struct sockaddr_in addrClient;
- U- c+ D7 K0 G$ l - sockSrv = socket(AF_INET,SOCK_DGRAM,0);$ N' t* S$ R3 e
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);2 G# S% r5 g2 s0 n
- addrSrv.sin_family = AF_INET;
+ m( U3 B3 Y' n. K& H - addrSrv.sin_port = htons(6000);
' i' x8 [# d2 t0 S - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
; `: A/ D) V$ P) e - len = sizeof(struct sockaddr);
, z# z) f. {" B - memset(recvBuf, 0, 100);
# ]" o; G+ S" l) b( N - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
2 E3 L+ J- n( f - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));8 j* C$ }4 Q9 @% n! V. j0 T7 w
- printf("Client data is:%s\n",recvBuf);
7 {2 S, e) t+ g- J9 n% F - close(sockSrv);
$ K# ~% H, G" c6 c0 X# v6 l - return 0;. ]2 e( Y. u, \$ I6 e% V0 F
- }
复制代码
; \7 F7 [% C+ L( `% v; l! E8 {1 @0 ?% d( E t1 C6 U
! y1 a" u2 \1 f3 [* G3 x0 q
% P, y! L4 } f8 J/ \# S |
|