管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:0 W& f$ Z, P3 Q
#include <sys/types.h> ' y% o0 j' ]$ I6 F: }. E
#include <sys/socket.h> 5 t& q, Z& m s% [! p+ T
#include <unistd.h> 2 ^4 P/ O; u" N1 |9 [4 a( s, B3 w2 F
#include <netinet/in.h>
% L0 K, E$ [4 L% D Q#include <arpa/inet.h> * ~7 D1 Y+ Z y) m9 q$ K( b
#include <string.h> 2 e& ], ]3 m4 F0 v* w( g+ L
#include <stdio.h> 6 p" l% f4 Z. s3 v
int main() {
; M3 Q6 L- ~: ]$ [ int sockClient;
6 T6 k$ l2 v* h9 r5 ~ struct sockaddr_in addrSrv;
9 \# D% R( V/ L, Z# H8 Q% y; ] sockClient = socket(AF_INET,SOCK_DGRAM,0);& r5 X. C. b4 m( c
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
3 p! o# v1 h+ y, t2 v+ ~ addrSrv.sin_family=AF_INET;% T) ~; j* C9 \: Q5 @$ t
addrSrv.sin_port=htons(6000);- K8 `6 U7 }& G, |7 s; W; F
while(1)& t- Q! Q+ m! c+ h% }$ q; {1 v
{
0 S) J+ N S; J: F* |! }" t sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
3 O" I% o- \( f5 \ sleep(2);
]9 D! F8 o- n }
g5 L( _# I6 Z/ l close(sockClient); ( B- N0 J0 o; p. j
return 0; 8 O* M8 ?) z4 y! v9 D/ N8 c
}, H, z9 p2 m1 i- B u( j& a( k. y
/ u4 H# Z* }. N+ m
; `4 s8 D) F$ u
客户端:- #include <stdio.h> 2 Z* o) z8 M- S5 c
- #include <sys/types.h> % R5 @0 ~- I& ]6 p$ K$ A" l
- #include <sys/socket.h>
! C' y. |( k" ~) |' X - #include <netinet/in.h> ) Z( J5 ?/ A; X$ z- T# _
- #include <arpa/inet.h> 6 L. L: B6 y* |% N: {
- #include <string.h> 3 Y8 ^) j( L- B
- #include <unistd.h> 3 A0 b1 n# Y8 R- z
- #include <fcntl.h> ) `1 S7 _/ h O. O
- #include <sys/time.h>
: S# F) h$ A! |, S, Y - #include <sys/select.h>
. A9 Q3 N$ f" Y* z& {! S4 U - #include <sys/ioctl.h>
, J @( {, T8 Y D# R, d - int main() {
' e% P( x: T5 D5 _! [ - int sockSrv;
) \# z* W f& P8 @ - struct sockaddr_in addrSrv;3 R: G) X: B0 m8 |+ c
- int len;+ S; y I0 l7 G7 w
- char recvBuf[100];
$ ]' I6 a; ?0 x. N0 F. V# r - scanf("%s",recvBuf);4 b; ]' V$ f( I0 n$ A: K T
- struct sockaddr_in addrClient;' R5 b/ \. H: g, u
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
5 L" I f/ b4 j - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);, j8 K' \3 P: o. w- [4 Z0 e
- addrSrv.sin_family = AF_INET;7 I0 m8 X+ X1 T! i& X3 m
- addrSrv.sin_port = htons(6000);
7 ~9 C( E( f5 W+ v0 T - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));2 k) R% E" P5 T! P* n
- len = sizeof(struct sockaddr);
C+ N+ y/ o( X+ l* f5 B - memset(recvBuf, 0, 100);
0 B' p% i- v; Z. a0 e8 q" e - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);) u# Q. U+ Z2 F$ E6 w! ~. r
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
! @4 k7 `/ t+ H - printf("Client data is:%s\n",recvBuf);
* o9 T, k; V) e0 C( H - close(sockSrv);6 |% G0 N$ v' \5 i
- return 0;+ j- r* F) k- P# V- j
- }
复制代码
* N! x* g8 P; h/ z; r" t% u: g! m# |, M, M! g( e
; b( H: [4 z4 a1 a8 Y! ~4 {; m8 Z e7 r6 d( W$ m" `
|
|