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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:- y, U( [6 @: {' W, p" d
#include <sys/types.h>
( z6 W; O/ v y: N; f#include <sys/socket.h>
8 J% \& [7 b1 }. V- Z3 Z. f#include <unistd.h>
7 {0 C( H! s! D5 V( C( a) v* j#include <netinet/in.h>
8 Q/ D! P& A% Z5 ?- a0 ?+ `#include <arpa/inet.h> # K, z4 z. a; B$ L9 L) `) t3 e) {
#include <string.h> ; s6 d% N& y! n* i& A6 o1 B
#include <stdio.h> 6 a, |& g7 i5 O, k# }* ]% E
int main() {
3 ^& R& C( h8 e1 N. m! }; |0 h) o4 l" j6 x int sockClient;
4 E/ k' y) \; y0 z* A: ^ struct sockaddr_in addrSrv;
8 x V) ]- _. g v) C8 D Q5 A( _ sockClient = socket(AF_INET,SOCK_DGRAM,0);: b9 a6 a, ~7 ]- N% a. H5 h
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");5 k" y& H7 _$ C& v W( f' \( @
addrSrv.sin_family=AF_INET;- s) P- e3 ]8 {. B+ F
addrSrv.sin_port=htons(6000);
4 ]0 O( N0 U# d4 @* g1 Q2 i4 q0 P4 \ while(1)
b+ ?* i/ O e( t- d3 `' u {* a; i4 h3 {- p1 G! T
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
6 s. U! q( L% h9 [ ^' l/ I5 w; G sleep(2);3 [1 n$ l7 S& [7 x5 M8 h
}
6 e) X' q0 H3 n. s close(sockClient); + K7 ?0 k J. E; e# n5 E
return 0; % N9 n. F) y- ~; j
}
& V) M7 v e8 V# q) [; _' ? w7 e$ k, ^0 p/ T3 s
4 t0 r% ]! q1 M% B客户端:- #include <stdio.h>
4 o' p1 F. R: E4 z0 e/ @ - #include <sys/types.h> 8 b0 Z9 I4 F' N" a7 l) A3 V
- #include <sys/socket.h>
, G6 l- n& ?; H; {! \ N' o( Q8 a - #include <netinet/in.h> $ J% i, n$ h8 O
- #include <arpa/inet.h> , j2 L* |9 J6 o1 E
- #include <string.h> 7 J. h6 j% R) a- T3 ]4 G8 d% D0 z6 h
- #include <unistd.h> 8 {# Z3 M! U' W- u
- #include <fcntl.h>
R& I+ o$ @8 S) i# Y2 i; V - #include <sys/time.h> 6 q. q5 x/ _& f
- #include <sys/select.h> 0 ]3 F2 ?) z1 j$ V5 e
- #include <sys/ioctl.h>
; ~5 H* [3 ?$ v5 c4 Q5 c2 t1 G - int main() {
- F1 \: C$ o" p - int sockSrv;
4 X+ K9 d1 `" B4 Q) ?7 P - struct sockaddr_in addrSrv;
8 {; J5 h% ]6 }( X5 ~& u# q% F - int len;+ `( |5 Y# s i% E5 U( O
- char recvBuf[100];$ j1 ?0 Y& I$ l/ F; T1 ^! E
- scanf("%s",recvBuf);
0 A6 c! C3 l' E6 t7 g5 u) } - struct sockaddr_in addrClient;
4 b; P$ }- ?! S" B9 `& D% r6 F- V. r - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
Q' \- g7 a1 }% i' d# K8 D3 y% x - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);. d/ h3 Q- c! e3 I: k% V
- addrSrv.sin_family = AF_INET;
. ~) I/ @; `2 I - addrSrv.sin_port = htons(6000);
0 |& d# B* Z6 b8 x# p) { - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
1 C" v7 @/ |# Y$ D/ ?$ N - len = sizeof(struct sockaddr);4 N) w! `: r/ {! v' D) ?
- memset(recvBuf, 0, 100);
) ^4 L6 l; x' @( S1 k/ q1 |0 n - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);! e( o+ ?: {& A6 h2 x
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));6 c8 [3 Q5 a9 o9 z$ \6 ^' b
- printf("Client data is:%s\n",recvBuf);
* C1 X1 L3 m8 v- m) K - close(sockSrv);
* E5 @+ e& w" _7 v) x+ C - return 0;
p, A: F( I; _; x# T- e - }
复制代码 $ V; q2 O5 I9 X+ x" a. Y
2 ~ p7 h, F% R3 D3 ^
5 O3 n% _' W& ^; D8 T+ N6 P3 O& k6 s
|
|