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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:* @ M# f: F8 f
#include <sys/types.h>
) ?$ I: |2 s" o6 ^1 `#include <sys/socket.h> - O" p3 o! y: H
#include <unistd.h> * N+ i9 A6 T' k+ x& T
#include <netinet/in.h>
+ ~/ q- [1 E: j#include <arpa/inet.h>
E: K( l3 o' @* U9 D% X# m#include <string.h> ' x# U8 p/ i7 f0 V0 ~7 n1 c
#include <stdio.h> 0 |" [! {' Q% L; o% `) G# b
int main() {- ~3 s# o2 g/ h4 F7 N1 _9 Z- r. ]
int sockClient;
' g9 v7 P" i; T% A, f# b* W struct sockaddr_in addrSrv;
9 q% j2 Y' y4 Z, B+ V% n sockClient = socket(AF_INET,SOCK_DGRAM,0);
2 r2 z) K# i" Z: ^4 o$ u addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");0 v. p- G! t, {# i0 h" k( Y4 F
addrSrv.sin_family=AF_INET;
) Z" j5 _8 e# d, c- j addrSrv.sin_port=htons(6000);) ~2 O3 @* r5 f- J3 G p
while(1), B& E& i% J7 Y/ N. D
{# E5 ]/ j9 i3 w- d# N4 V- a
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));1 }$ k& J6 P% J& d9 u% b% F. q3 @5 M( ?4 k& X
sleep(2);) L7 R- z& C! D( k" ~' `/ Q+ ~
} 1 N, x8 a3 L3 L ^) @; ~7 ^1 y
close(sockClient);
- E6 Q. F7 z# ?3 q4 ^9 K, j. k return 0; / L" w; \- m0 E; }7 x
}9 _+ |6 ~+ a, g8 w$ _
$ U+ G0 C& G2 i( Q) L
/ R, x$ r. _- h
客户端:- #include <stdio.h>
% v0 P5 U8 { m: p/ L: N1 G - #include <sys/types.h>
0 c$ h# O4 o3 E6 e3 w; q - #include <sys/socket.h> 9 w! H# y2 `: D% Z( E# u1 c
- #include <netinet/in.h> ; L/ i, L6 X0 n E! d
- #include <arpa/inet.h>
% D, a$ l2 y& w" B9 } - #include <string.h> # U9 q7 W8 y* |5 ^: _" s {. Z
- #include <unistd.h>
- `" l m7 `! J# I, V - #include <fcntl.h> 2 J# ?4 o) m% y# C( [
- #include <sys/time.h>
/ t! g* a1 a1 l - #include <sys/select.h>
; @# C' o6 a" l. u - #include <sys/ioctl.h> 7 d$ b3 i6 |. w! Y8 ]
- int main() {1 ?! ~# G* ]1 u; Z, ~9 r
- int sockSrv;8 i) `5 N) v( e9 F
- struct sockaddr_in addrSrv;
' H* l+ _+ T+ y - int len;
+ {( Y+ Z& P% U) z, r* c - char recvBuf[100];9 c0 N7 ]! l' R7 ^. B0 T& O
- scanf("%s",recvBuf);
; H* P6 w/ m4 }" ?) h3 f9 y - struct sockaddr_in addrClient;7 J: Q/ `6 j" N7 }
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
$ x- |" ~+ n1 g - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
E; x1 I+ Y% v8 [# u# H - addrSrv.sin_family = AF_INET;
8 I- W9 h+ [6 A; o" n - addrSrv.sin_port = htons(6000);
* z! ^/ E2 T1 C* P! I - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));" J3 D4 R. N7 e" Q) D( ^; q4 ^5 o
- len = sizeof(struct sockaddr);
( s$ P$ r! W2 I& K4 I - memset(recvBuf, 0, 100);
8 X" f8 l; @; K8 P! t$ q/ H1 J( W - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
7 ]1 q/ L. v; o+ k1 ] - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));( }$ E0 h9 y) q4 H- P6 O( {
- printf("Client data is:%s\n",recvBuf);5 M; t3 G8 |, N/ K3 e' o; l
- close(sockSrv);0 j' g# E0 V% ?% x
- return 0;
4 Z+ ~3 v V; C9 G$ u* s; N. Y - }
复制代码
. ^3 x! E& Q7 C1 H/ b* c( ~; h3 Q& @% h: x B7 U3 F; i& v+ C
2 k8 }' F) j& E2 P1 ?# K
7 Z# f& X3 l- ^3 H8 n( f8 F |
|