管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端: G2 q- r/ G" }
#include <sys/types.h> 0 R+ V- J5 @$ C; F
#include <sys/socket.h>
3 s5 r% l7 \# t* [& p, n' ^#include <unistd.h>
- {1 D: ~# z S: ]5 R; c3 H#include <netinet/in.h> 7 p A! ]6 Z& t' Q& V
#include <arpa/inet.h> ' x/ H+ C! }$ m; y3 E1 B. `1 M
#include <string.h> , A! [1 d1 U0 ]- s8 A5 E2 A/ D
#include <stdio.h>
" O! }4 D7 [( [6 Kint main() {! |4 d( a) _) n" k' ?) z. A; [
int sockClient;
, l. O# A! Q$ ?# x4 q struct sockaddr_in addrSrv;
" |0 G7 N7 W; j: B( ^1 C- i: s6 W sockClient = socket(AF_INET,SOCK_DGRAM,0);
' {4 v n9 `( g4 ]2 R/ t addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");" t J7 j) O+ |% F$ ?: {8 Z
addrSrv.sin_family=AF_INET;
( F( }5 V3 w6 R8 K9 b addrSrv.sin_port=htons(6000); H' p8 e/ U/ b5 }
while(1)/ ~. i' ]1 Z; H- L' O" o3 d; _4 m
{
( U# _ b6 M7 J6 m+ s7 p$ r sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr)); r# [6 O o) T% {/ l& a7 I, \
sleep(2);6 k/ h4 S) K* a7 P; J9 K
}
# x% a# A+ |1 @, [6 v close(sockClient);
& y2 \& g5 q& T return 0; 5 b$ \: U/ A0 J+ P6 D9 |8 m
}
% l* T% o" }/ F$ r- o
' U, I; S/ _- l6 J9 k2 A0 c* R" j. ?. Z$ F: H+ M7 Z( X
客户端:- #include <stdio.h>
9 W. @( \' x/ n& f" Y - #include <sys/types.h> 2 _, A" Q$ V" M0 x
- #include <sys/socket.h>
' l1 e( G0 e' ]; ]4 V - #include <netinet/in.h>
; d7 w9 n" V3 ?# ` G) ` - #include <arpa/inet.h>
# A. f. m! q, n& v$ D - #include <string.h> 1 U3 Q( t' O* o6 G
- #include <unistd.h> ; K7 h$ @. w7 o* Z' I
- #include <fcntl.h>
) j. G- t+ ?1 V' N1 N% ?* b6 N$ g - #include <sys/time.h>
# \/ K+ Q+ x* N6 s1 }: K. H; E" w - #include <sys/select.h> 1 T% D0 W, F- v
- #include <sys/ioctl.h> ( V2 v2 q, |2 i. v
- int main() {
+ L$ s5 o& D! S& k+ u - int sockSrv;2 e7 y4 x# q5 w( l! H3 X
- struct sockaddr_in addrSrv;
! _- X6 C$ J7 J4 B- C - int len;2 z( e5 o3 L3 g; S& z8 }
- char recvBuf[100];
4 h: o z( x! @3 w# c - scanf("%s",recvBuf);
; n- [ r" X' f6 ? - struct sockaddr_in addrClient;# }# P" T, f4 l$ B4 Q
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
+ Y+ c6 F& ~/ F - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);. p" w% k+ o1 C, w5 M2 M
- addrSrv.sin_family = AF_INET;
+ C7 j) v" @5 Z( [2 [- N; | - addrSrv.sin_port = htons(6000);
; n, r/ v! r3 K7 X+ V$ d5 y - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
+ C l l# o. L3 Q( b. J - len = sizeof(struct sockaddr);3 ~$ D$ @6 M3 J' k8 D: w
- memset(recvBuf, 0, 100);
+ X# _+ Q( X! N% W: z - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
$ Z$ P" q' [5 Q( {# U - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));7 ?8 G G* p' C6 H
- printf("Client data is:%s\n",recvBuf);. Y n! O9 j% P b5 f# o
- close(sockSrv);
3 t# r2 E8 }6 J/ v, ~% A% | - return 0;1 a4 B( X+ e7 o r; b
- }
复制代码 . |- Q+ N6 c0 j+ z* P
2 Z& i3 N0 B" Q0 K4 N5 J; F6 S
$ B1 Z I! u4 s
$ p8 h0 o! ]4 b1 M0 F6 L1 N9 V
|
|