管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
& h& g, I! o m* m#include <sys/types.h>
* `& s: s9 p5 n' C, r$ r#include <sys/socket.h> 6 n& F3 b- n q9 J: o' A8 A. M
#include <unistd.h> 1 n. @( i4 a5 v' O" t
#include <netinet/in.h>
- Y5 d2 k" }& M; \#include <arpa/inet.h> 0 ^, A6 l* I6 P5 `& W
#include <string.h>
. l k1 f6 D7 B6 n" X#include <stdio.h> + f. c0 o$ h6 ^- j! Z
int main() {
6 ~" ~5 |) c- k1 C3 v int sockClient;
8 l4 [6 }- } W: t struct sockaddr_in addrSrv;# ~0 F# B+ D5 W3 y& ^
sockClient = socket(AF_INET,SOCK_DGRAM,0);
& G9 O/ i# R' E1 n, B addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
, H$ L9 u3 P" \0 Z5 @3 L* t% p addrSrv.sin_family=AF_INET;
' \. k+ W5 D* G! t8 E addrSrv.sin_port=htons(6000);
0 E' t* `4 F) @/ ~' X while(1)
! U/ [, i4 }* y; A {
- _( H8 [& s { sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
) c& b- ~9 u% W2 V sleep(2);
{. g1 y7 N5 P# ?6 s0 }# j } ; | Z+ h/ B) Q; ]9 A. Z/ {3 [
close(sockClient);
- o2 \. w9 |9 K) p9 F return 0; : B1 s' p4 i2 Q8 x
}6 Q: @/ U7 @& r/ E) h6 g( a
) |! }3 U4 O* C3 U
7 X2 |8 U: p# n o客户端:- #include <stdio.h> 6 c, H8 q" v% Y7 |7 b, O
- #include <sys/types.h>
9 P4 A4 \6 i. S& _# F" n& v, Y* e( b - #include <sys/socket.h> . K1 b% E& m3 k; b
- #include <netinet/in.h> 2 x$ z) _: f2 Y+ n
- #include <arpa/inet.h>
0 |2 I. \' U1 f - #include <string.h> 9 r9 W4 P# Z4 ]! y f
- #include <unistd.h>
9 x0 B4 g+ e# x7 o1 Q - #include <fcntl.h>
0 ^* F; h( X: z4 D+ W& [ - #include <sys/time.h>
/ X, z8 W4 k9 o# `8 E" \" P. F - #include <sys/select.h>
1 F) E" Y3 B$ J$ a8 R - #include <sys/ioctl.h>
1 b9 {4 ?8 z/ o7 |' ~! w - int main() {. N) `4 }6 {# A
- int sockSrv;+ L8 _7 \* a2 \+ k/ D) s
- struct sockaddr_in addrSrv;
4 ]) D+ @7 v. B' U J - int len;" v; p* w4 ^) V ]( C7 s l
- char recvBuf[100];% g3 {6 V8 D4 v1 N( V1 S7 ]0 [
- scanf("%s",recvBuf);% G- z9 k( m& k" h6 A# p7 @
- struct sockaddr_in addrClient;! b; i6 r' y5 e% X. |! @
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
- u- ]* |$ t. }8 x& c - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
4 r% \5 d1 M' T4 { - addrSrv.sin_family = AF_INET;" r( f5 |: f8 w! y" K8 C6 O* O
- addrSrv.sin_port = htons(6000);, q; N, S5 k/ p4 W# e
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));: e/ v6 D. d# h+ m7 t
- len = sizeof(struct sockaddr);% @ y& E0 ]' G) T* d3 Z- B+ o
- memset(recvBuf, 0, 100);
9 H. p4 e; [( d- L9 _7 v - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);# Y. b3 R J# I
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));0 @% b) O' @+ B
- printf("Client data is:%s\n",recvBuf);% N2 T; w$ f, s+ n8 G
- close(sockSrv);
' u8 F! ^. A- Z. R4 E - return 0;
, C5 _7 F6 u- r6 q- x' Z8 L - }
复制代码 * I+ L# T6 l' K7 n+ w' U
5 p I# N2 N* Y) `6 v7 ?& F
+ s; R2 d- y5 f! ~9 v
+ H' Q9 f, j9 f; Z: I9 o2 p2 }* X( c |
|