管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
' z+ O! w/ \/ \/ E6 x1 Z* `#include <sys/types.h>
; Z( E) j2 |8 x$ |- H#include <sys/socket.h> ! e$ W% d. R/ n2 L
#include <unistd.h>
7 r" x: l6 J/ R) D& `$ U. f#include <netinet/in.h>
$ F5 X3 n! z7 ]( X4 F z: y#include <arpa/inet.h> ! z; z3 v- U0 k6 {6 ?4 Y
#include <string.h>
4 E( P* e5 w5 K1 Y6 }#include <stdio.h>
0 n- {3 u9 g! T: z) B# t# \# E* e& z3 dint main() {
6 \. i5 |7 \; V int sockClient;
& v% y% F5 c1 C( K# i struct sockaddr_in addrSrv;/ _# G! i+ ^. D9 D
sockClient = socket(AF_INET,SOCK_DGRAM,0);
& C7 n7 w$ ?" K, h addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
% Y9 p" R0 Z0 j0 o" ~ addrSrv.sin_family=AF_INET;
/ o; K- E/ w9 [ addrSrv.sin_port=htons(6000);
9 m5 U* x! z* Z1 Q5 m/ K7 z while(1)7 p; G9 z6 l3 C) c2 _
{9 b' z# D( C/ u1 T! J. q: C k
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));: j) Z {! A( @ J7 `! A6 Y
sleep(2);
8 B) O. E( _6 m$ P5 U }
/ u, _6 @9 N* O) _ close(sockClient); ( Z7 [* f. d8 K5 j1 h; t( V8 D
return 0; # p' q }% X" r* G5 K# E
}
4 U) i) m9 c7 U6 Z* c; h/ p
6 z& v4 A( [; c! J: I* N& l7 I
客户端:- #include <stdio.h>
5 R1 Y/ o/ Q4 B - #include <sys/types.h> : @- q; S& F; K
- #include <sys/socket.h> ( Z1 e3 { N' ?: |+ s/ z
- #include <netinet/in.h> - q! g7 w8 ]: K3 S* F
- #include <arpa/inet.h> ; f5 `2 j4 ^1 x
- #include <string.h> ) l2 W0 h" \& W( y5 K
- #include <unistd.h> * r% {* x: e$ u( J3 [8 L* j! Z
- #include <fcntl.h>
~: ~: _* Y# _' t+ X - #include <sys/time.h> % _% `7 J" s, l0 Q3 V7 n
- #include <sys/select.h> % t/ j- z T# t' N; {/ {
- #include <sys/ioctl.h>
0 z3 `3 \- a( Z - int main() {
`9 h( ~' z) h1 Y - int sockSrv;
4 v' f) B3 L5 L' {/ u' C - struct sockaddr_in addrSrv;# v8 b! H% M% G4 S' S8 Y% F
- int len;& a" E: O/ H6 i+ h
- char recvBuf[100];
0 i7 B8 c* r$ o3 T% N - scanf("%s",recvBuf);
9 n+ [& q7 w L* a% @; R - struct sockaddr_in addrClient;
+ \$ l6 i- u( b* A - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
9 c) i6 k ]* i' j: G7 _3 I - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
* Y/ Z) u6 m# d+ d - addrSrv.sin_family = AF_INET;
1 F+ |) t- f8 A8 C% k9 Z& q - addrSrv.sin_port = htons(6000);
, i! K1 o' ^+ g z, w8 w% W - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));, E9 a% F/ k3 L6 C; H
- len = sizeof(struct sockaddr);, c) K, G1 A- Y
- memset(recvBuf, 0, 100);+ F A, H4 H4 E' m. _
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
% l6 q& @$ _) |5 v* W9 @0 v6 X6 G - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));3 n) |( N; |; A& ^/ {
- printf("Client data is:%s\n",recvBuf);& z- \2 `4 h2 g8 j
- close(sockSrv);
: e4 ?' X2 V8 Q, h+ g - return 0;- i' p, S) s0 @+ ]$ R+ C: T! L
- }
复制代码
5 E9 ~: k$ V! h
) \- K* {# c: _. ^" t" E/ A1 k. I) i
( D( U5 b9 t/ D! U, l0 k |
|