管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:' `4 y4 r8 y# I# f& B, E& x& N
#include <sys/types.h>
; O/ }% |$ c9 R) ?#include <sys/socket.h>
: X" A% Y2 R, }' K. k4 m+ {#include <unistd.h> 5 t- u! V: t( s v$ N6 a
#include <netinet/in.h>
+ t8 U a! n& `% |! S#include <arpa/inet.h> 3 h8 ?; D' `. m+ p0 p
#include <string.h> 9 e' Q5 D( K `9 A- H( o
#include <stdio.h>
" M# M y1 `; I3 o6 w' Y* J# xint main() {
- E& ?% \( I2 T3 d+ [ int sockClient;: }$ D" l; J I7 a
struct sockaddr_in addrSrv;$ {8 S" h# [# S) g! s
sockClient = socket(AF_INET,SOCK_DGRAM,0);
% j9 \# l- s* A7 a addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
. B6 a3 m( J1 E9 }0 K addrSrv.sin_family=AF_INET;2 c2 M c+ l O- B
addrSrv.sin_port=htons(6000);! {. t: t' r' A+ }9 S" }5 ]3 V1 K
while(1)
6 i5 p K& c3 d {% h V4 z8 i; g0 @: K
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
' Y! R# @( e9 X# I: r: ~; L u sleep(2);" b2 T8 i9 Z' e, G+ B
} + x9 r, ^( ]# k* w1 @1 D y" F
close(sockClient); ) S! Q `) j' S& e" n) s+ I
return 0; 8 S) p+ o ^3 H, I' A
}
$ x+ `3 K" o) s+ N# U. R
2 y+ A) ]7 `; W W3 g- ]3 B) S8 }9 P7 l; v% u$ A
客户端:- #include <stdio.h> ; M: E3 m. t' {+ N) h0 _+ k* C
- #include <sys/types.h>
8 [9 p% q# Z' ~- t+ u2 i' Y - #include <sys/socket.h> 8 ~3 I8 N$ u( o% f6 z$ J- U) |3 _7 a
- #include <netinet/in.h> 9 [- T9 M) S2 \
- #include <arpa/inet.h> 5 u0 B9 O9 x, u y$ r, N
- #include <string.h> 5 D6 i4 g) U- d, t5 T
- #include <unistd.h>
$ k5 i- l; Q! h3 a - #include <fcntl.h>
$ p. u* g& z- O$ x - #include <sys/time.h> & P' U7 ~5 Q# G( e0 B
- #include <sys/select.h>
: X3 @5 N x7 S4 I* ~& ` - #include <sys/ioctl.h> , L: E6 N2 d, t$ ?
- int main() {0 S4 {6 s2 G3 X/ [0 P
- int sockSrv;
# K. h* V1 P" t8 K) I - struct sockaddr_in addrSrv;8 b5 ~! @$ Z9 A0 ]/ o- o
- int len;) \' b" K' q* P( z3 Y. Y+ K6 g
- char recvBuf[100];
$ {& J$ s1 q* C1 o6 p - scanf("%s",recvBuf);3 R# t2 {) k& P! Y& @7 e( h
- struct sockaddr_in addrClient;
2 N+ e# n' S1 N" l - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
. S0 I9 U7 @3 }! u4 u7 Z - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
* u( z* ^0 e; F+ R2 M" R7 | - addrSrv.sin_family = AF_INET;
3 ^8 o2 K. U/ Z) f& [ - addrSrv.sin_port = htons(6000);. z' s9 x) J9 r
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
2 ?, }4 X* V' z- k& { - len = sizeof(struct sockaddr);
& k# ]+ D! ~0 k4 b4 f" R - memset(recvBuf, 0, 100);
% P& a0 r3 ]8 G3 z* M: E - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);& \% [" \- a9 _/ N" v+ q
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
1 y" R) P- R# s" f - printf("Client data is:%s\n",recvBuf);
/ N" C5 g& J% Z$ O/ Q7 q u - close(sockSrv);4 N ?' W0 |4 ^* o1 f
- return 0;9 t( [; ~6 u) K' n5 f
- }
复制代码
8 V. B5 q' h6 o6 b2 a
7 m: t+ ^* H+ k, \4 x; B. P* A
% y( c$ Q+ g8 p1 G! d0 N& [2 k; f
|
|