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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
2 a% e' m- q. t4 I) d4 h* O* O8 F: a! q#include <sys/types.h> 5 g( ]3 d' s: l. _5 {; M& B4 a; R
#include <sys/socket.h> % r) ^" ]# B1 E* c9 k
#include <unistd.h>
. n+ b: I1 O- B! |0 j. x#include <netinet/in.h>
5 a, ^ U' C5 ?" `! t" i#include <arpa/inet.h> 3 b9 r6 l. n3 x5 m; B$ X
#include <string.h> " V3 l: Y6 ^, C+ x& u
#include <stdio.h> ; _( u# A! F) @* T
int main() {
2 Z/ b: g( e) s) S$ L. t int sockClient;+ c( u4 |: H7 _2 h1 t. Q
struct sockaddr_in addrSrv;
2 \1 _8 B4 y5 M sockClient = socket(AF_INET,SOCK_DGRAM,0);
) T% `( u1 G) @, m6 I8 | Y addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
5 {) O8 ^. l: j$ R m" ? addrSrv.sin_family=AF_INET;
/ O q# k1 [) v8 G1 W addrSrv.sin_port=htons(6000);/ U7 S5 J Z. y- ?: G1 Y4 y4 w
while(1)0 k) t" i7 g3 s
{
x4 C. g( ~" g, t sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
1 z1 N7 N' O3 l" a1 O' e6 z( ] sleep(2);
& H D# _2 T9 q! z- L } G6 \3 \. o; `" N r' h- q
close(sockClient);
0 }, `* T' q7 `# T# V# n. S return 0; : t: {# u/ O j1 ` ]2 F
}
! W( I L8 J* v- f1 B( q8 k$ _. w9 G4 D7 ?2 A
* o' [) M! |% q/ g
客户端:- #include <stdio.h> + t& E/ s6 D5 ?3 g1 Q
- #include <sys/types.h>
( Z' o$ y, i+ Y8 \$ E. P - #include <sys/socket.h> 5 D8 j" a4 {2 C$ R! y5 n
- #include <netinet/in.h> 1 o' o& |1 p0 w) r v8 w
- #include <arpa/inet.h> / [+ U. g, z3 [6 Q" c
- #include <string.h>
' a9 v! w0 C# c; V9 W' P - #include <unistd.h>
; U4 g& X" G# E4 I - #include <fcntl.h> . x2 b0 `! r* y, g' x9 R) m
- #include <sys/time.h> " x& f U, e2 Q. O
- #include <sys/select.h>
6 m% \! P, w3 h- d z d - #include <sys/ioctl.h> : x2 `; t7 t; i6 [$ Y
- int main() {
7 l( Q: k* n8 x, }& ?! b4 l; I! ~ - int sockSrv;
' [4 f+ i4 o+ W" K/ L* C8 {" h - struct sockaddr_in addrSrv;
! _9 s# V6 k$ t2 }$ F - int len;
3 a, ?4 O8 ~, @4 m" j" y - char recvBuf[100];
7 b; y4 T) n' @6 z3 A0 Z - scanf("%s",recvBuf);
0 {# T! \+ `4 S) j5 \# G/ m5 T2 Y - struct sockaddr_in addrClient;7 j# X5 u% i" ?$ A* L# Z
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);/ w3 x4 J7 k' K
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);# m' e3 z1 A( P N2 c4 C& H
- addrSrv.sin_family = AF_INET;
9 O/ t0 o9 L3 A0 e; K8 n - addrSrv.sin_port = htons(6000);1 f+ f d' w. l4 Y4 e
- bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
, U/ l: I; R4 q3 X* D3 M - len = sizeof(struct sockaddr);& J& Q$ j- t2 {) F7 b
- memset(recvBuf, 0, 100);. H8 k3 O4 N" A* o1 H2 b
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
" C7 [: k9 ~2 H U' {" H8 G( [( Z1 U - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
y8 c. |9 Y$ |+ C2 a! j - printf("Client data is:%s\n",recvBuf);8 N8 M! R- g1 j2 M8 E
- close(sockSrv);
3 V: a2 m1 M6 [/ N7 l. h - return 0;% k k9 \4 j+ }
- }
复制代码
( `1 ]; _% F P" Z/ K$ z$ t$ h1 x
$ W2 i( T R4 g2 k# k' t; L3 h
* C9 N$ ?! s+ {5 F7 \6 r
I1 C. I' _4 ]4 k J- ~# n1 C; j |
|