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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:- J; m( G* J, }
#include <sys/types.h> / G0 p/ Q) i3 S4 h6 c
#include <sys/socket.h> + |* l3 D9 G+ g. Z
#include <unistd.h> S5 W+ x: V8 l6 c, x: X
#include <netinet/in.h>
- C! p7 [1 I8 ?* n3 @- w* e#include <arpa/inet.h> 8 h- ^8 ]1 N% V! q6 z8 ?
#include <string.h>
7 P( y3 K$ B! H. V#include <stdio.h> 0 ?& D2 y0 q2 D3 ]
int main() {
6 E: P7 v8 i0 T$ Q% }& x int sockClient;
4 d; A! O+ E0 N6 s% H struct sockaddr_in addrSrv;- |/ v4 l k) d% n: f
sockClient = socket(AF_INET,SOCK_DGRAM,0);
# `5 i2 H! d# t: G& j, z addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
! X% {4 S7 {/ r$ i0 I% J addrSrv.sin_family=AF_INET;. j9 p9 i7 I0 p/ |7 `* }2 p
addrSrv.sin_port=htons(6000);( U- i. }. W$ i7 \
while(1)5 [# E1 O( u' ^: K/ G) H
{ p4 q3 j6 I" p: Z' M
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
# k9 |4 L" y8 h8 x sleep(2);% P8 z; J+ h) U$ G- A6 }( ^' G
} 5 ~6 U* ?- F' Q; V/ ^4 I* O
close(sockClient);
3 X- Z: H+ a1 o$ O return 0;
' E' ~9 T5 x$ A( h; g, |: h}
. \6 O. c, R9 J+ m
8 Q+ ^# ^* a. J% Q) T& @. h+ l: i& h! _
客户端:- #include <stdio.h>
) K2 M9 P" M) m' D) `. F |0 w - #include <sys/types.h> ( z- y7 q% H- X2 ?2 J5 [0 v
- #include <sys/socket.h>
+ n: `+ x S0 S3 g! W - #include <netinet/in.h> - K4 ]; g& p( \ M; @; `
- #include <arpa/inet.h>
3 d4 L* h0 ?0 Z# ~! Y - #include <string.h> . \0 I h+ \3 n* q5 D! ]
- #include <unistd.h> 8 P& v* N: X# ?* E' B, c' B0 }( j
- #include <fcntl.h> 0 w/ e9 v. e' i; i& q d; `
- #include <sys/time.h>
" r( U5 M1 Y s9 ?) y# Q" K9 x: O - #include <sys/select.h> 8 _" W. p/ G- z/ u# O
- #include <sys/ioctl.h>
1 h0 F% {$ Y, A% f+ Y - int main() {
# o- n, g1 u0 Y# p; w& b9 ? - int sockSrv;& G- }' U5 `4 W3 F" W
- struct sockaddr_in addrSrv;
6 u# ]6 |& T& [6 C0 Z8 R* ] - int len;5 M6 r& t- g4 h! w0 w
- char recvBuf[100];
! e4 e6 [: y0 l. o2 z1 c - scanf("%s",recvBuf);0 g7 Q; `0 V! x" R" d) p6 p
- struct sockaddr_in addrClient;! }& D' _/ Q+ n4 d, K1 }( B# o
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
2 t- ] t7 y$ }7 Q - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);2 q/ o* v6 v' ]2 b: c: B, b
- addrSrv.sin_family = AF_INET;
7 i2 P3 O: f) v# m/ T0 ]- C \ - addrSrv.sin_port = htons(6000);
# ^/ _$ O8 R ?# r0 m& F6 f - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
$ F6 V$ h4 v. S9 V: x - len = sizeof(struct sockaddr);
b2 L- g- q) D+ U+ M, g1 Y - memset(recvBuf, 0, 100);
* {+ R5 R/ s5 J. P" r4 R6 L) o2 L8 S6 M - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);8 o+ y4 u1 _5 Y4 D- ?$ e- ^+ ^
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
k/ X$ `- R2 H - printf("Client data is:%s\n",recvBuf);/ U& y$ w4 H, J7 k
- close(sockSrv);
p. {% _( y2 ~: n7 { - return 0;
7 A7 ]2 Y0 V$ X4 o! c - }
复制代码 ; V S! @* C# O% H& m
7 g3 m$ R) {7 \$ j
* s) X0 c, U9 R: J: |0 m! z) M5 z% l1 k" @
|
|