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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:8 V, w9 G' P- y, w! f; V
#include <sys/types.h>
" P, Y! E' {9 Y/ u* m; C' O#include <sys/socket.h>
4 }5 N a3 N* |8 n3 I8 s#include <unistd.h> ' e$ s! o9 [- o: |! p v
#include <netinet/in.h> & B$ @) l/ t" c4 c. o0 @
#include <arpa/inet.h>
2 @% v f Q" D0 i8 o/ a#include <string.h>
" G! x" F% M- Z#include <stdio.h> 9 I$ u8 b2 e# P' Q* c; e
int main() {. m2 ^: {' O9 E
int sockClient;/ |+ L+ A. Y' ]0 i7 p
struct sockaddr_in addrSrv;+ _$ C$ S- [) c! ^
sockClient = socket(AF_INET,SOCK_DGRAM,0);
2 K- Q, m7 r! ?! m2 D addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");/ e& O* g% M' ~9 ?" b$ r1 j
addrSrv.sin_family=AF_INET;
. o. Z# |9 A! V- q3 `- r3 M addrSrv.sin_port=htons(6000);; R5 B1 T9 d* K U5 w6 z4 @+ j
while(1)
0 d9 T( b5 U8 \5 d {
* k% L9 A8 V6 S3 a2 i/ A2 e2 w sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));/ k; L, p8 r# T6 E
sleep(2);$ D Q: ?9 w' {* i8 S$ u9 |
}
- V) Y' C r' G4 z+ Y close(sockClient); ' F2 {) \* b1 Y7 ?6 N! @
return 0;
* X7 R2 W5 m4 i}! x6 F" I, A0 Q* U+ p2 L
1 m8 @' N8 o* ?9 D# i
: Z, ^) e8 p* E1 @* I. a客户端:- #include <stdio.h>
% K0 z4 A; W" Z$ b7 i Y8 M1 c5 ` - #include <sys/types.h> - p. w( x9 k1 t8 x
- #include <sys/socket.h>
+ |% c! Q Q- z- O3 ~ ? - #include <netinet/in.h> 1 f2 U- R1 A9 p8 ?5 Q5 J& ^
- #include <arpa/inet.h>
$ M/ _3 s# V7 z% R4 `1 H+ r+ T - #include <string.h> % `4 \# C( n7 Y y" i3 L3 Z5 C7 B
- #include <unistd.h>
8 e4 ?( u" x- D% {; M) \ - #include <fcntl.h>
4 C+ P2 M& |& l% r! A% H - #include <sys/time.h>
) a4 _( A. m7 q( m7 t: R1 ]3 u" n B+ q - #include <sys/select.h>
% X, }! n$ g; z) }" w0 R - #include <sys/ioctl.h> ! `4 u# N9 i) u a
- int main() {9 W3 N& b5 a+ b4 d
- int sockSrv;
m& c+ l G& @0 h - struct sockaddr_in addrSrv;5 j8 t1 y/ G! l9 g
- int len;9 V: I3 H! g9 W8 Q
- char recvBuf[100];# ]6 |1 `- V0 I% X8 V
- scanf("%s",recvBuf);5 @% r5 N: D# K' D3 H& F3 _
- struct sockaddr_in addrClient;
, A% Z, p! E2 c4 H3 } - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
4 s/ ]( X }6 P' v2 K) c - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
, [$ S, X1 D+ |) P W - addrSrv.sin_family = AF_INET;7 H9 L( b5 x7 d' i' z) O$ X
- addrSrv.sin_port = htons(6000);
/ q% K3 N4 f% A( v% ?4 V - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));% ^ Z4 x6 E9 K% a6 I# _
- len = sizeof(struct sockaddr);
. ?! A, w; n4 k; j5 s - memset(recvBuf, 0, 100);
, r$ |9 {. ?- j& T @4 g! l& Q - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
9 q/ i4 l, g+ a$ i; q( E: j/ k9 d - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
- A0 S' s( A. C7 [ - printf("Client data is:%s\n",recvBuf);
7 U# ^" } k7 [3 M - close(sockSrv);2 `1 Q5 z, f" n: x$ W7 [$ o' q
- return 0;. r& o: T9 r3 t0 g1 p5 B
- }
复制代码
# o% Z9 m4 t' {. n* S" `& k6 ~
4 I! p/ s8 M0 u+ q' ?1 s. Z% Y4 d% ^5 x3 I- |4 @% T4 b1 Y3 D
1 d' u" T3 `0 d% t2 o0 P; T
|
|