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

楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
) u1 i# ~4 |- Z) w#include <sys/types.h>
! `0 A3 `# h# m% V#include <sys/socket.h>
" \7 f8 @: Q2 w) H8 G1 c+ u6 a9 ^0 x#include <unistd.h> ) p. L6 L& b( M2 k/ y6 K2 G8 E
#include <netinet/in.h> , R1 A6 \0 i4 T
#include <arpa/inet.h>
. L- O! I6 y+ s6 U* Z#include <string.h> 4 I0 |. C, J( X; Q( J; z ^
#include <stdio.h> , d+ L# n# I4 i3 }0 B
int main() {
' q# n& T0 j9 B6 ?$ o k int sockClient;' c) S* S$ ]9 |9 S# ?
struct sockaddr_in addrSrv;
/ ]* |" m8 `4 n; D" v. _; O sockClient = socket(AF_INET,SOCK_DGRAM,0);* e" I2 e& ?; Q+ C) M- Q7 r7 A$ Z' ~) |
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");$ H& V! T% A/ I5 H9 E% C
addrSrv.sin_family=AF_INET;
1 o h. W' a% A7 P; r addrSrv.sin_port=htons(6000);
, Y' x* ~2 [; o4 a4 M while(1)& @! q% s5 Q) u+ n( \% d
{
) \* u2 a! i2 ~ o sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
+ E- H7 Q0 ~. H; K3 h# w0 c sleep(2);
* T w- T* u( G } , a4 z1 g }0 o6 R! _# _8 L6 U
close(sockClient); 3 z( O; D& Q' t# W1 e- l5 u9 m4 B
return 0;
0 V% w+ e" C, r}; P$ D7 \8 N4 d1 K0 o$ `
2 h! n6 r5 ?7 O/ r* x7 I. K/ D& X; f% d7 c
客户端:- #include <stdio.h> " D7 Q A) j e
- #include <sys/types.h> ( k/ u8 P- H8 U. f( n
- #include <sys/socket.h> ) s! R# t2 v$ a" @. r; ]
- #include <netinet/in.h> " ~, k" J0 q4 c0 N4 I, a0 o3 i
- #include <arpa/inet.h> ) l5 c3 b) Z9 p6 q; h* ^" |
- #include <string.h>
. k4 b; k+ L9 n9 s - #include <unistd.h>
0 m- r; g$ i7 O3 Z& w' W b- L - #include <fcntl.h> & ]' d: K6 T8 P& c( ^, Y- O
- #include <sys/time.h> 1 R& f4 w5 X* E a* R
- #include <sys/select.h>
6 o7 v W* s( }# ]) `1 [* j* u - #include <sys/ioctl.h>
_6 w- g8 T) S) y" i8 \* v& S - int main() {
$ F. e/ @" F1 ?/ w - int sockSrv;
- z9 c: H" u1 N- p - struct sockaddr_in addrSrv;
' d9 b P" d7 y4 ?; y5 c - int len;% d0 u6 C& v. b# o
- char recvBuf[100];
+ \ Y/ A0 [% s# v' ?- A% a - scanf("%s",recvBuf);
+ V+ c0 s# k6 a- {6 } - struct sockaddr_in addrClient;' Y) o5 y6 r' {! O! K4 k
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
2 q9 N! H) P3 @% E3 L% |* t, a - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
* y5 [1 h+ w0 k8 e/ E f4 j- ` - addrSrv.sin_family = AF_INET;
; \/ X9 |, R2 L. U8 @. v - addrSrv.sin_port = htons(6000);
3 Y4 L$ S* [/ f: H$ o- f - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));7 W9 M) g9 G/ G+ [; A# T; t
- len = sizeof(struct sockaddr);1 B$ |/ R. C! @3 [" V9 _
- memset(recvBuf, 0, 100);
- n/ I F/ M' q" J# V - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);3 ^. Q5 G! G! r) v& @
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));6 Z3 j0 x; Y @0 t
- printf("Client data is:%s\n",recvBuf);% m- U3 q$ u: k2 p; G0 W' {
- close(sockSrv); y" d& V W- G( A8 n( H
- return 0;% {4 F- h9 G P4 u9 w4 c
- }
复制代码 3 K# s) A* p( @; m
0 V, K! x6 H. Y v4 i
0 G! I3 S1 d$ o* |1 |7 P% h
+ X/ E; ^+ T, x |
|