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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端: m9 M! X( H# }( `
#include <sys/types.h>
$ n" u Y! L9 A7 N#include <sys/socket.h> - @0 d3 ~* I* P5 [) U4 v V
#include <unistd.h>
4 [1 P% A# }! T. f, C- k* i( Z6 ]#include <netinet/in.h>
8 n; e q9 ]( E- A$ @#include <arpa/inet.h>
2 o+ |/ w# C' R4 m#include <string.h> : j( O* \# Q c* g5 T4 g( ~5 }, H; f
#include <stdio.h>
) Z6 _/ c( R0 A/ F( p7 [$ dint main() {
$ {5 T: |' Z) t" c' O int sockClient;
1 o7 Y) K" R6 j q C: m struct sockaddr_in addrSrv;
3 P; u6 f! r. N, o! ^: q" P; w sockClient = socket(AF_INET,SOCK_DGRAM,0);& |+ W& F, G/ r5 G
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");) Q* L! A; @+ p# v8 i$ v* [
addrSrv.sin_family=AF_INET;
) O/ N" l) n) |, e. ]: Q addrSrv.sin_port=htons(6000);
. R+ v3 |- [5 L# O5 K while(1)% d/ n" z( J* P0 E( v3 p
{( K9 _/ ^4 Q/ o6 \1 O" @
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));3 ]9 Z8 A% e2 {( K9 N: \- a
sleep(2);
" F9 s# G/ M7 }4 L& ?1 V }
- b0 F: f$ O9 |" U* T close(sockClient);
! i1 G+ w% d( l0 p5 r) A return 0;
* x' M8 @! T9 |3 L7 L' [; H9 L}+ F; o l0 s$ Z. r" e
- s, G! D! }, c5 v
3 B* A5 @, P8 k0 a8 t
客户端:- #include <stdio.h>
: S1 q$ ?" [1 x5 B% r - #include <sys/types.h> # B+ e: D: Y6 T# O; h
- #include <sys/socket.h> / t/ T4 k2 X2 G( {* l3 b
- #include <netinet/in.h>
- [/ z, N4 B% w* B/ t) x9 s8 ^* i$ H# q - #include <arpa/inet.h> # L; h/ S7 z* M- m8 V
- #include <string.h> & q n @) X& I# L9 U
- #include <unistd.h>
" g* L/ _$ d0 q- _* u5 H3 I - #include <fcntl.h>
% x0 R: |: p5 v3 h2 ]' C - #include <sys/time.h>
" `9 E3 l& {( k6 X8 x, K! W& s - #include <sys/select.h>
# `% |8 F8 X- Q: n - #include <sys/ioctl.h> 7 Y4 X5 r) x1 R. [( ]: n6 j
- int main() { P* ~0 {9 n, H
- int sockSrv;
) f9 {* f' J* g& ?9 X - struct sockaddr_in addrSrv;
8 N k9 d6 y, V0 z( O: N* M9 w - int len;
- z" \, m( @! g9 h& H$ T - char recvBuf[100];' ^0 q' \- i; W- [+ v0 ?
- scanf("%s",recvBuf);2 n L0 o7 P: l [% k8 H
- struct sockaddr_in addrClient;' v7 `. I) u' }0 ?" z2 V- N
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
* P# T T1 I2 ~6 ]/ |0 L - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
% P8 @1 s5 V# b% m9 s7 s - addrSrv.sin_family = AF_INET;
/ @1 P, d6 G" p, v" U - addrSrv.sin_port = htons(6000);
( |- A9 z( h: ^. \. _" B - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
9 V6 A( u, I# G0 `+ n# v: |6 I+ g - len = sizeof(struct sockaddr);0 M) d8 X5 E# M
- memset(recvBuf, 0, 100);
/ u# X. H. U# Q) n* D. J - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);0 Y' b% I! L$ o( t5 p
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));( e R# ~4 M# h
- printf("Client data is:%s\n",recvBuf);- ^- \4 @7 ?$ t1 P
- close(sockSrv);1 T3 e/ [: w5 K. z
- return 0;
! \2 t8 f* P+ J* O - }
复制代码
3 A. Q* O5 }* b4 I9 a' E
- x# K$ y, k! ~, H: m, {7 \; h8 D( @1 K7 Z- l# \& u- U) H% s# c
( u! @# C% |: Z) o9 H. I |
|