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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:+ j" f F7 a" N: n0 c3 S
#include <sys/types.h> + E5 [/ \* ?- T% I- B* P
#include <sys/socket.h>
) S0 Z( m3 Z# k+ @#include <unistd.h>
: N. F3 V5 _) v5 ?/ H/ q2 S+ I6 E#include <netinet/in.h>
+ ~9 c' q) L/ C7 h# v$ S#include <arpa/inet.h>
# c% B5 v+ V: L2 j2 g% P5 f B" C#include <string.h>
% I v# ?. W% T9 x. m B% t' \#include <stdio.h> 1 z( j9 w' M, V/ ^ I% ~
int main() {; ~0 `8 \1 V/ q6 X) O. `5 V4 P
int sockClient;
/ Z0 u/ z5 N$ }7 H6 c struct sockaddr_in addrSrv;
0 J! [3 ~6 D6 {: N8 `# ` sockClient = socket(AF_INET,SOCK_DGRAM,0);# f# y" D2 t' A
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
0 n S' z$ w6 E8 t: s4 f2 S; b' H addrSrv.sin_family=AF_INET;
9 f% H' ~! `) p7 L2 p9 l# z addrSrv.sin_port=htons(6000);+ Q6 r; Z. B: H% q
while(1)/ w) U, C! w# C j7 i8 B2 B: @
{
+ h1 F& J3 Z) C sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));/ O* z2 R2 r$ ~# x
sleep(2);3 @5 \7 H% z% r" ^0 D+ |) d" \
}
4 B- O7 N' L2 V5 G close(sockClient); ( s- P+ s; e& t
return 0; / l- H7 @* O3 T7 S8 A
}' g; G$ V0 ]8 D3 n
) Z* A7 z4 m3 p0 }) `5 ^, Y5 W5 S, D1 A/ u: H6 w% c+ ^
客户端:- #include <stdio.h> ( l' q; y% y/ ?% L
- #include <sys/types.h>
2 S$ |( } j5 k9 ~) J' D% Y e$ V - #include <sys/socket.h>
! U- ?" W v d/ b4 U4 p - #include <netinet/in.h>
0 b* k2 v! ~3 Z; o* _: p' ]( C - #include <arpa/inet.h> . B( w5 b3 E) c1 t+ m
- #include <string.h> 4 h4 [! z3 R+ `! Q$ R B# \0 A9 M
- #include <unistd.h>
2 |- X/ z( Q; v7 k3 b- ?1 ] - #include <fcntl.h>
6 U5 J: C- ~# x - #include <sys/time.h> 1 P, t5 n z$ k3 E( E) f
- #include <sys/select.h> ! ^2 W- y- H8 e% F8 D. N- S
- #include <sys/ioctl.h>
% v, k. p1 j# ?4 p3 d& C% E - int main() {
& \8 Z, {* @0 F8 P! W# P - int sockSrv;
% E- A, _( H/ N3 }+ V' c! g - struct sockaddr_in addrSrv;7 A+ `, f# G! N* @ z/ w( |! H
- int len;7 N. Z8 u# v- n ?6 k* `
- char recvBuf[100];, W. I% `# a$ y S( U
- scanf("%s",recvBuf);' B) ]- ?) `* [% a% K
- struct sockaddr_in addrClient;
: E) J A1 s- p7 @* N4 o/ h - sockSrv = socket(AF_INET,SOCK_DGRAM,0);. M% T* L: K$ l. t+ n' k$ \! T
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);7 T7 j3 x0 H! N6 P0 i6 I: [3 k
- addrSrv.sin_family = AF_INET;
4 G6 ~& A2 U6 v - addrSrv.sin_port = htons(6000);2 X3 k Q+ e w2 m* e5 v- B
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));% o1 r7 N6 X2 \. m( q4 m% W
- len = sizeof(struct sockaddr);
- i6 f+ d* j' n) u5 l, R - memset(recvBuf, 0, 100);5 I2 N. U2 n2 ]" j
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
' R; b7 _1 Q9 {3 ] - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
& S: S# v: D _* g9 i6 b, p - printf("Client data is:%s\n",recvBuf);
1 a c4 D5 p; W( F! T: a - close(sockSrv);
. w+ ^) m# i, \9 N8 H - return 0;: A3 q' O8 ?* L- v, e* A4 @+ Z
- }
复制代码
- V: l$ f* E" ~3 P
7 @7 q8 F. y% f2 q7 ^$ V4 j5 H# d( e% E$ [6 P
2 Q. m# Q+ f: V) j5 c |
|