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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:' K. e) M- c1 F# U* y' T) f, z
#include <sys/types.h>
, ~" r. ]; j) c9 v3 d#include <sys/socket.h>
/ `) z0 F4 E4 ^" j5 f6 B. ^#include <unistd.h>
* z2 H, U& W! N: W$ m#include <netinet/in.h>
1 m; w( c5 f. q2 t. C0 A( B#include <arpa/inet.h> 6 w8 E Z1 c# P4 Z% z
#include <string.h> 0 B; Z ]. {8 W3 d7 E
#include <stdio.h> * G& _; g, Y2 C' i& z2 B
int main() {% H, y6 t/ s# e6 {8 Q, I( ?, v
int sockClient;
! ]- p: j7 @2 P+ D+ e& ]$ z$ b# ` struct sockaddr_in addrSrv;
0 S8 d8 m7 ?# i$ [1 c$ y sockClient = socket(AF_INET,SOCK_DGRAM,0);
. X' G: X/ g! L# j0 H4 Q addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
* ]/ r n* c" B7 I) D addrSrv.sin_family=AF_INET;& {. t+ p/ W1 q/ f8 W4 U: D/ W$ q
addrSrv.sin_port=htons(6000);, K3 A+ j/ i" J0 l
while(1)
% z' o8 v) O2 l7 a5 H {
/ U0 w( J( J4 b% i, O sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
$ R5 E; w( e7 d: X5 g' c sleep(2);5 e2 w8 {$ k1 T, l$ e
} 6 q+ V" `( w) ^, v
close(sockClient); k+ \/ y# n: s- Z2 i
return 0; 2 i% @' ?( A7 {: b K
}2 r/ j4 j9 c: |0 c+ Y. d8 g
}- H+ q1 Q# [
( ?+ \3 `; G9 {4 D& M) X4 U客户端:- #include <stdio.h>
$ ^4 ^% [/ D% g% W J1 V" T _ - #include <sys/types.h>
6 |* }/ d4 R" L* Z8 T/ @1 } - #include <sys/socket.h> # r/ L$ V: V6 k) M2 i
- #include <netinet/in.h>
7 D O7 h# `( q* ^4 v - #include <arpa/inet.h> 6 U4 o. k' N' `9 {4 d
- #include <string.h>
; u E! h. n' G& }+ B - #include <unistd.h> 9 g9 ?% l/ T5 G* A2 J7 H9 q$ a
- #include <fcntl.h> 5 a1 `$ B' L* f! _4 m
- #include <sys/time.h>
. P9 ^% Q1 l- a - #include <sys/select.h>
( \3 E( }4 n: A: r. I2 _6 c - #include <sys/ioctl.h> / C- } U! k3 L+ G, Q+ Y7 m3 M
- int main() {0 E7 j# m$ Y+ n5 j' t' Y
- int sockSrv;
. X3 Y4 i; E# {" ^4 S - struct sockaddr_in addrSrv;
4 A4 f2 H4 S3 Q$ l' L) ] - int len;
j5 Q; G$ ~+ b6 s+ k: M - char recvBuf[100];
: a3 s# c( y) v& L- P4 t - scanf("%s",recvBuf);
1 O! w9 H4 y6 r - struct sockaddr_in addrClient;$ p+ a G; Y$ |2 R# N
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);. g g/ h% s% w$ ^- }' I
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
& e! ?3 @8 x# o - addrSrv.sin_family = AF_INET;
) a: W5 c4 z% F, Y v - addrSrv.sin_port = htons(6000);! y& C& \. h! k, O! a- g* T6 W- Z
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));- h& g0 C& k1 J. i4 D
- len = sizeof(struct sockaddr);
9 |6 L7 O0 u0 m# i" k- d. T - memset(recvBuf, 0, 100);; U2 T6 R. q: y2 K( q$ B
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);' v+ ~$ y0 O: d: c* I- Y
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
5 x' k7 }- M, {1 K - printf("Client data is:%s\n",recvBuf);
( L3 n1 h& w+ p% G - close(sockSrv);. i* J8 C- v4 }+ B. G& h3 G7 M
- return 0;6 v& Z1 F- W" D$ F: s
- }
复制代码
+ Z$ O/ J' d2 B4 t9 D
9 Q3 H+ e) ?! {. n* ^( `; K7 k; t0 g8 f% q2 o2 c% I
2 `/ z; m: e# [& X- \5 W
|
|