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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:7 O1 X0 d' }9 _" Q2 Y& a
#include <sys/types.h> * S* k$ z/ K* D! Q) u" f. \! b
#include <sys/socket.h>
( D9 T! w0 }& p6 [& c#include <unistd.h>
, `& ] K" C8 d#include <netinet/in.h> - o+ j: f9 U, C/ u3 z% e; Z8 a7 B
#include <arpa/inet.h>
0 W ~) P, G# M$ [) V#include <string.h> $ {8 }/ J. ?9 `5 W5 R
#include <stdio.h> . q. z/ d t9 I& \( X. d$ a
int main() {
3 u- M) X: ]4 ` int sockClient;
- ?- e0 r: E9 \. ?& ~" P" W& g( ~ struct sockaddr_in addrSrv;5 u: c: `4 k; A! g" L% L3 P
sockClient = socket(AF_INET,SOCK_DGRAM,0);) [* u7 e1 S+ E6 u$ v. J
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
2 S2 i4 k$ b9 \+ M addrSrv.sin_family=AF_INET;3 m3 P; A/ `, F" P$ a
addrSrv.sin_port=htons(6000);
/ B" ^; B+ |/ U3 @ while(1)
) l2 v! }) F5 M; N" J2 E {9 ?# g; R+ v& [
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
$ X+ P6 K1 z! T6 R: c/ S sleep(2);
$ K' _1 A. R8 i) Q& `8 p2 h6 i } 9 J' }7 L; U0 S* G5 P L: k5 ^
close(sockClient); ( Y$ E. E8 _, C7 ~" j( \% S
return 0; 4 L0 L" c \6 W
}5 N+ }3 d% m7 d3 n- e3 ^0 E+ W
' g1 O) Q8 E6 S+ \ ^+ N: I! x J' w V' L( a2 P, [
客户端:- #include <stdio.h>
- A m) _- q Z2 g! g - #include <sys/types.h>
( Q7 I6 X" v' v2 `5 O7 g - #include <sys/socket.h>
1 m/ v, i* a+ N - #include <netinet/in.h> 2 ]: n! {# I! ?3 ^
- #include <arpa/inet.h> 0 `$ @: w' T7 x) Q6 G
- #include <string.h>
" P0 [* ~, x1 _' _9 r% [ - #include <unistd.h> 6 {- V4 z& g, Q" N* L
- #include <fcntl.h> + L2 z3 H4 Z/ k; M$ A6 q
- #include <sys/time.h>
6 X* R8 q2 j; w& B) _5 U+ W' R - #include <sys/select.h> |! n+ b. ^. u- b: k4 @
- #include <sys/ioctl.h> ; c( I: B6 S& J) b( q% f5 z8 ?
- int main() {
* c- K: d$ u6 ^4 M3 w - int sockSrv;
* L" r- F9 H( G. t( h; f* B1 t - struct sockaddr_in addrSrv;
+ t$ o, |; }" o6 Q, f# ]7 e4 @ - int len;
) Q( |" Z8 \' @; W& w - char recvBuf[100];2 b% q I* W/ `' m9 `
- scanf("%s",recvBuf);
' r4 S4 ? G3 z6 _8 X0 G - struct sockaddr_in addrClient;. W; q( f7 f& `% c" K* u
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
; a9 Q, J. N# h - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);( l; t& e9 G# [+ {
- addrSrv.sin_family = AF_INET;
( {& R$ o5 f! ~# V - addrSrv.sin_port = htons(6000);
' x/ X' ^* `& a! |6 L) I - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
& \7 I5 `1 r/ O9 _# B' a - len = sizeof(struct sockaddr);
1 t0 e: Z1 o; c7 d% m* M, ^- i - memset(recvBuf, 0, 100);
8 Q& \' M* d4 d% `: z0 | - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
) b! \4 K0 D2 Q - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));* T, h) Q% {( P- z
- printf("Client data is:%s\n",recvBuf);
4 p, v# Y3 e/ U7 z - close(sockSrv);
4 Z- y6 ^' {% i$ D' ?0 U - return 0;' Y; ^. x3 [$ [8 g$ U
- }
复制代码
1 p0 j# g5 ^) |
% Z2 ?8 S L9 } [7 P$ G) ~( y
' Z! T+ l* p4 ^2 m/ n1 ]& Y
" z8 z, {9 u3 `' w$ Q* i. [ |
|