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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:/ G f: j* g$ s- T1 U
#include <sys/types.h> 7 {9 k5 F0 @; J' o% F
#include <sys/socket.h> * O4 ]2 |' L5 ~! D/ u6 L
#include <unistd.h> 4 I4 p) W* `' y4 T4 a6 o8 S" i/ D
#include <netinet/in.h> ' R1 [4 p( V4 d4 j% O
#include <arpa/inet.h>
9 R8 z2 Y9 J5 P0 Y+ x#include <string.h>
% b7 z+ ~7 g" }- l) o" N. i#include <stdio.h>
8 Z7 k' p. X9 C: F9 Sint main() {) L6 x) K. J% x% U
int sockClient;
. `5 T6 h3 N$ [3 S' l" d struct sockaddr_in addrSrv;
3 m* d$ B3 {3 L) \+ A" G' d& Q sockClient = socket(AF_INET,SOCK_DGRAM,0);0 E4 e3 x$ g" Q- g0 i# S1 S$ \. t
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
3 N9 N4 i7 a+ ~* N8 \4 |/ z addrSrv.sin_family=AF_INET; P2 e: u2 J/ O# D5 D
addrSrv.sin_port=htons(6000); M4 H+ ]' Y$ l: K" H
while(1)
* ~. B2 ^4 w) V, s, o {
+ U: R) J& b& D, ^5 x7 p: ? sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));$ |2 @# m7 \9 i+ X; Q m1 [
sleep(2);
1 G5 X) C) q8 E9 |/ E } ' b$ k3 B+ R& d3 {0 V
close(sockClient);
0 b8 l2 N- G9 |: r; r return 0; ; Y0 {% \. p/ W% S# e$ ?5 |
}
/ ^1 s3 K! K7 y/ V1 ]3 x% T V. x6 d* L8 J- F
1 g6 a) y( v4 A' A# p$ i2 g客户端:- #include <stdio.h> 8 U! X+ V: O' z4 | q" a
- #include <sys/types.h>
7 `) K% V2 R# {" c$ w7 q - #include <sys/socket.h> 3 X. O7 {- L' `, _) _7 t, @+ {+ p4 F8 p
- #include <netinet/in.h>
. I: b2 q* X [& P ~) v1 Z" K6 ~ - #include <arpa/inet.h>
9 c6 b7 V0 P* b - #include <string.h> 2 _. i+ u# C- J& H' j
- #include <unistd.h>
4 a) J+ D j( g' @: C. l - #include <fcntl.h> / B1 p; ?" A# T* ]- z
- #include <sys/time.h>
; E1 R* w; V9 i - #include <sys/select.h>
7 i0 x# E- w/ w - #include <sys/ioctl.h>
2 f" F) R4 o+ E% n1 g3 Y - int main() {
+ G- j! V8 S3 Y- n+ P+ Y: x. k - int sockSrv;
9 I6 W/ y8 `6 O% R - struct sockaddr_in addrSrv;
! `8 B, ]) I0 _. E - int len;
2 U6 `) S$ j% Q- a - char recvBuf[100];" ~; ?' C) c+ W
- scanf("%s",recvBuf);
6 s3 h2 b1 E# `) r/ ~. {, \$ b - struct sockaddr_in addrClient;! J" S0 L, j A( m) _/ V
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);) ]+ J7 E& c7 c( j+ x3 ]1 ^
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
: y9 I! |- u- p$ C3 k$ R - addrSrv.sin_family = AF_INET;
( a* {# b: z: p" W - addrSrv.sin_port = htons(6000);
5 }9 M1 d% a" F% W - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));* A" P2 k; Y6 p% n
- len = sizeof(struct sockaddr);( L& z" T4 v& O
- memset(recvBuf, 0, 100);
' I+ e& T* h5 b2 g - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
+ w! c5 M0 `& R* g - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
9 ~% x# l5 v1 `# F- G% M - printf("Client data is:%s\n",recvBuf);
T6 J9 U, h7 n: e, U- P - close(sockSrv);
) b4 J; R$ g& i& @3 m$ d - return 0;
! m7 N O- A% P$ [- m - }
复制代码
- f$ B& _- z7 Y
$ t& A5 a4 B8 i0 @ J: L6 D9 g8 r6 ~3 ]( r" R
6 ]0 s0 _0 C& j |
|