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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
7 d, J) S: V1 b" v. y* a8 T#include <sys/types.h> 2 Z0 X9 m' p" W, R
#include <sys/socket.h>
* K+ J6 g) C* L' z#include <unistd.h> 9 J% u$ C0 m& c5 c6 W( N8 v
#include <netinet/in.h> 0 r: S! ~4 |( l* [
#include <arpa/inet.h> 4 ]7 Y7 N+ B3 m, y
#include <string.h> $ i) C9 a" d3 R: _
#include <stdio.h> . u5 F3 F: l& |% Y) e& V' s
int main() {1 ?; f. [* H7 I8 ^* }( T
int sockClient;
+ E# m5 ^. @" r3 l struct sockaddr_in addrSrv;( v5 q5 W* l8 `& |# [0 n0 K
sockClient = socket(AF_INET,SOCK_DGRAM,0);. H8 ]- W% W! D9 D5 }
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");6 K2 N3 C' R6 f$ q% J' w6 \' }
addrSrv.sin_family=AF_INET;) o5 V4 S+ m7 q0 Y! ~9 L
addrSrv.sin_port=htons(6000);
& ^9 D+ K! M( g! F, h, s! D while(1)
- s* C' q8 I! W7 @. O, F1 p( {$ q {- O0 C. X0 J' s; |# z) v
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
3 Z5 ^2 k' }; Y. G* J# z! P& o3 ? sleep(2);8 O6 }! b, Y& B8 g! X6 V& e- y' `
}
|; w" F% C7 _3 l7 g6 ? close(sockClient);
% }& X, a, z. }+ J4 X% f return 0; 5 w/ l# Y% b9 e
}
+ E1 t8 m; M( T
: l0 Z" B" W) v1 E2 T
1 `) {1 E) b8 Y9 Q* N; t. A" _客户端:- #include <stdio.h> 2 U4 P; c; |" B0 `# a+ {
- #include <sys/types.h> . L2 W7 \2 w4 F8 Q) C1 B, F! E
- #include <sys/socket.h>
5 w; `. u. w5 p0 z' ` A" A5 @ - #include <netinet/in.h>
& h3 e4 {& v8 W }. _: G - #include <arpa/inet.h>
6 I7 }1 d+ `( c/ D2 b# N8 o - #include <string.h> ' [& |1 L' T1 J! ^- V! i+ a! i
- #include <unistd.h>
1 S+ q# k! B: @" n - #include <fcntl.h>
- g+ H+ e) u4 a: _( | - #include <sys/time.h>
% b% y: }; s/ j% g' P, t - #include <sys/select.h> 2 u% _/ X& F _. N( j
- #include <sys/ioctl.h> ' g$ T- L! F, D% A; D
- int main() {4 J1 f; A+ V6 W$ h3 Z8 }8 G* W
- int sockSrv;5 V3 w: [6 Y4 r' r+ v& E- e. J
- struct sockaddr_in addrSrv;
& Q9 j/ I& Y$ y - int len;. i7 X0 y0 e3 S6 w% C( n R
- char recvBuf[100];" I. \0 l1 Z, n6 m8 j) R
- scanf("%s",recvBuf);
3 I( T% T& H; \9 } - struct sockaddr_in addrClient;0 v# A9 E9 V, ?# \4 M
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
) L% e$ w$ A7 p2 n - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
* `! ~6 @) n! Z8 k# b! u' B3 E - addrSrv.sin_family = AF_INET;
$ f0 ^+ s P# c; m5 Z - addrSrv.sin_port = htons(6000);+ d5 i) c+ w9 b/ G0 G
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));' }+ q. u& O* l, u
- len = sizeof(struct sockaddr);) d, z6 T0 a2 Q- Q4 S4 k: X* A' G- E
- memset(recvBuf, 0, 100);, q0 K9 j; u: X4 a' C7 F- j3 S
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
" I* S1 |/ r3 i$ B - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
]4 Y! R, z. n9 W - printf("Client data is:%s\n",recvBuf);
+ L+ X7 ~5 b8 x8 \/ K# o2 p - close(sockSrv);1 Y$ n: {, f/ a) d- T
- return 0;
9 d( V4 a, n* o/ U1 a3 | - }
复制代码 : T+ `0 c9 t" u9 }5 E
0 P! X) g) l$ G' j& m: a9 P1 ~5 p: W2 |, s# e
7 O0 H& u" ^2 `6 `6 [: ` |
|