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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:+ x6 {, n: o0 r+ q
#include <sys/types.h>
% @& B" A- Z6 M+ \3 [- _#include <sys/socket.h> 9 I, g5 U% O7 m3 _! d* f
#include <unistd.h> * w3 k7 V4 P2 Z! I
#include <netinet/in.h> 2 t. H3 ~- J$ z& a$ b1 D
#include <arpa/inet.h> $ e8 j! q4 f/ r" x
#include <string.h> 2 F: L" D5 L. u
#include <stdio.h> / p9 r X8 U- o, f1 W; @4 j
int main() {
9 P* N* S# G; z int sockClient;
) y& N9 R2 Z2 s- L2 F3 r struct sockaddr_in addrSrv; d' S" I- E* {/ s
sockClient = socket(AF_INET,SOCK_DGRAM,0);
# n: n7 H5 K; D addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");/ Q% Z, t. [4 e
addrSrv.sin_family=AF_INET;
( [% m, J0 k% h+ u. u addrSrv.sin_port=htons(6000);( e: N @4 L) e6 l
while(1)
6 r0 [7 g( N3 u) p) J. m {" [$ Y* T* X7 d* \
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
( H3 V# @' }# e0 v! L sleep(2);
, x7 k# W* h% V X. { }
+ F" k# o) A& ~ q+ ~3 h close(sockClient); & M) @$ H; r, I
return 0; ; h& O4 J- f7 g( Q4 J, e" E
}
; |+ f1 L |9 \, \/ H; p. U" L, E7 d* V! V- M; l
/ ~& ^4 ]3 I: D/ E0 g
客户端:- #include <stdio.h> - V& w' O7 G3 f
- #include <sys/types.h> ! Z; B4 C: F y% `2 t
- #include <sys/socket.h> 2 l" x9 q- @ i' }
- #include <netinet/in.h>
& m- M5 Q: S9 S' ~% Y6 a6 X - #include <arpa/inet.h>
7 ?3 c: a1 X# c- }3 R6 S - #include <string.h>
, N+ y9 y2 L' Z- I2 |# Y- _8 J - #include <unistd.h>
% p u5 X6 y8 [7 W; T( C - #include <fcntl.h>
5 ^! m; ]# q! v1 O0 H, ^9 C- c8 | - #include <sys/time.h> & x, h: b# ^# k. z9 M
- #include <sys/select.h> ( q/ i( A; D) n
- #include <sys/ioctl.h> 0 w" T0 S# e4 M6 D/ c* m5 z
- int main() {+ c, u' c8 _; E$ Q
- int sockSrv;
) q& e5 l) I" e' S6 Y1 X1 {2 ]# v - struct sockaddr_in addrSrv;
9 m# B" x- a6 S2 N \ T0 { - int len;
3 [4 l, u- y" C5 P0 }' q p - char recvBuf[100];' B' M1 P# D7 y U/ V
- scanf("%s",recvBuf);
! f5 K' i9 r) z) u; Q7 W$ _ - struct sockaddr_in addrClient;& E2 z! v0 Z( n/ Q8 d& }
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
2 R$ \7 V( k. K - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);6 h" K! k3 n7 ?, t/ |) X
- addrSrv.sin_family = AF_INET;* r3 e5 a6 Z) |1 @! a
- addrSrv.sin_port = htons(6000);- d9 K0 L: t$ I# P, Z4 \) H
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
! Q8 z9 A6 U0 Z7 o6 e - len = sizeof(struct sockaddr);
- i9 M! n. a2 @: ]* Y$ g - memset(recvBuf, 0, 100);- x" ]$ c: v4 X$ V8 t: x- T
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
" F! o1 ]! G) E( ^& k - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));& o0 _9 R2 @$ l2 A0 {$ j T! N
- printf("Client data is:%s\n",recvBuf);
. T+ }+ G4 m `( n2 L, D: \7 Z; Z+ N - close(sockSrv);
4 l- w" M7 g K- e4 p - return 0;6 g/ d% e6 \6 _7 w5 L: E
- }
复制代码
/ N( g; c3 x! T: j3 L" p$ P
0 S& S5 O4 f* J; {& T% y" _+ Y8 \0 l) E! Y/ \% f$ [$ a
, F P6 P% a! r |
|