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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:" D, C- y$ r) O' L
#include <sys/types.h> : A- p/ t/ O4 w: \
#include <sys/socket.h> 8 N1 O/ b6 Z0 A/ U' o. U9 ^1 Q" v
#include <unistd.h>
; Z$ g; V; V) Z; Z# }- F7 E#include <netinet/in.h> : Q1 a7 i" r0 Z5 _% U0 _: Y6 N
#include <arpa/inet.h> 7 c- s: U8 Y3 d! {: B% e
#include <string.h>
9 c2 L" k9 S" `" a6 X4 F$ e#include <stdio.h> / t$ v6 B9 h+ L) D' `* a0 m$ L/ W
int main() {
2 j6 M+ o9 P' {0 G' n) }( \ int sockClient;. X3 P1 ] h" a- u( F: g
struct sockaddr_in addrSrv;
& n. n0 G( u3 Z- k& v sockClient = socket(AF_INET,SOCK_DGRAM,0);: F% Q0 f+ {% B$ E
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
' w% I4 K6 F/ G6 U7 h( E addrSrv.sin_family=AF_INET;* Q& B' n% }3 a1 N: h) i+ Q
addrSrv.sin_port=htons(6000);4 ^1 M, |& c6 E8 x) ]8 [; d
while(1)
4 N' z. ]. l; Y5 F& [4 D {
9 I! H* ~; l8 {6 {$ w2 Q8 e: y sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));! c2 }# n5 k, {! g8 u B
sleep(2);3 I: S' {7 Q) f) @0 q$ o# d
} - z& K) D5 Z1 d/ a9 G! Q8 G
close(sockClient);
5 f' s& j+ u. T; b$ L& ^/ x9 B return 0;
0 m3 J" j8 u7 I/ m& i L}
# b/ K% w6 K' [7 S5 `$ z- \1 n) n9 u4 S4 Z5 y
5 ^, p4 ~. e0 A/ S5 [
客户端:- #include <stdio.h> 2 b% m+ Y/ p: ~1 V/ ?9 ^. ]
- #include <sys/types.h>
( l2 p$ B# y' h4 y& g& o& g" N - #include <sys/socket.h>
# A$ a1 f1 U1 M U - #include <netinet/in.h> ! X( `3 t1 b+ G8 G' _& i
- #include <arpa/inet.h> 4 h5 _$ b9 B/ @# F' r. G: v
- #include <string.h>
8 F' {# A7 W* S0 J {+ Z% j# L& r - #include <unistd.h>
7 j2 ]2 C9 K9 f) l! I/ f( Y - #include <fcntl.h>
& b2 N2 n7 k! o, t' o$ B/ V - #include <sys/time.h>
- {" i5 |% y, ?5 w; f9 e* v - #include <sys/select.h>
/ U1 E5 g2 ~6 G+ B& @8 D6 r. y Y, F - #include <sys/ioctl.h>
2 h5 X! n- x* H3 r - int main() {! U( x3 S! K! W9 C& ^! L
- int sockSrv;
% n: C. S! P0 N - struct sockaddr_in addrSrv;4 H8 |# f! ~+ V w
- int len;
3 d! @& l0 J! y! o" i - char recvBuf[100];
9 h' Y. l# m( I; C2 z5 p - scanf("%s",recvBuf);8 U9 t. ?8 A6 ~
- struct sockaddr_in addrClient;" s9 h" m, K( z, b2 y6 c: f( ?
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
* S) G+ Z; g8 n5 d U/ j - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
( h( b. d" ~% {* F V - addrSrv.sin_family = AF_INET;' r2 f0 \1 o$ c6 [
- addrSrv.sin_port = htons(6000);* i4 y$ @2 P- c( S' L2 {& `6 ~9 K
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));. F e. Q0 j4 Q8 U2 d1 K$ F
- len = sizeof(struct sockaddr);
8 L5 Z# D9 _5 p) M: D4 g - memset(recvBuf, 0, 100);
7 R9 K3 u# q. n4 Z2 q - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);! \( W6 L3 c0 N. X! Q
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
: w: Q: T9 X& K1 _ - printf("Client data is:%s\n",recvBuf);8 A# g: H0 R/ _* V6 r+ v6 A
- close(sockSrv);; t1 g- `( p$ y
- return 0;
% ~' O! `0 |% Y3 R& A - }
复制代码 & c4 u" \! Q1 l. R" f# K
, O2 R% ^5 K' {1 ^( s! ^
0 L: ~, C* b P2 w6 S, P
4 a- r" x( h( ~1 ]
|
|