管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
) T+ X; o$ i5 Y6 v' [0 ^#include <sys/types.h> , k& I$ y! S4 A/ F& h2 u4 w
#include <sys/socket.h> 0 U4 Z, B4 F+ \$ }) d- {
#include <unistd.h>
+ l$ h! A4 ]+ X4 L4 {3 q7 S$ ?5 u/ k2 a#include <netinet/in.h> 4 e. k3 }' { ~$ `) E+ ?
#include <arpa/inet.h> % ~. a0 I* G" W- O
#include <string.h>
% w' z3 \4 E' B4 n#include <stdio.h>
! k' @9 K: a+ u" ?( U6 V \5 T9 G" Zint main() {
2 b K2 ^* o9 h int sockClient;! H6 n7 |5 U; e, T+ S9 v2 }
struct sockaddr_in addrSrv;
4 \" X3 w" O6 k$ b( Y sockClient = socket(AF_INET,SOCK_DGRAM,0);
! F& g8 C5 m2 p; v addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
6 O: i, c& y0 s2 d h0 C! ~& p addrSrv.sin_family=AF_INET;' G S+ [, A- ?, l, ?# o" y! F
addrSrv.sin_port=htons(6000);, }5 Z" n4 I* t! P' F# |4 G7 | v! r
while(1) i: ^2 w' C. \) j+ x- W4 g
{; b4 U4 ]% i9 j, t# T, _) N
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
' d2 D8 ~5 N/ ` `* v$ o sleep(2);7 G9 m( p& }% X# T
} ! Z( V- J5 K5 @% E7 Z% |) B! x# M
close(sockClient); 9 K D) Y" J* ^5 Z
return 0;
: t3 x5 a# Q1 T) T}" u+ R* J$ @5 O9 h
1 A! b7 D9 [; v+ @; {5 m
1 r( v: r) _$ o/ p客户端:- #include <stdio.h> 1 u3 n. l2 A6 K8 e4 H- w7 [, a" a
- #include <sys/types.h> j" g) ?* G# t' P
- #include <sys/socket.h>
0 _; q* m5 O& w) e+ r$ c- Z - #include <netinet/in.h>
0 b) k8 [# E6 a) Y - #include <arpa/inet.h> $ f y) k5 D& {* ?- X- V* E
- #include <string.h>
8 Y) D$ b% J5 J - #include <unistd.h>
* P% G2 V. r6 t! [1 U3 x - #include <fcntl.h> - F' ]9 ]7 a; d" b W, d6 B) r
- #include <sys/time.h>
- t Y0 ^8 E, g" ~( S' P3 U& b - #include <sys/select.h> : p, m3 p, D( K. z$ M& t: p
- #include <sys/ioctl.h>
. U% a8 [$ k+ y# _" ?) Z- \- F& f - int main() {
& r1 v, }# i9 e' u& q - int sockSrv;
. F7 n( w+ N) K! }8 w( p - struct sockaddr_in addrSrv;
4 X7 B M. K: V7 V* _ - int len;( v y) W# I( E
- char recvBuf[100];9 o( M9 M- x$ Z9 P- o# @) o- S4 r0 f
- scanf("%s",recvBuf);2 E* Q, P& K; @
- struct sockaddr_in addrClient;
8 Q1 u+ F. H3 T8 S* @3 n - sockSrv = socket(AF_INET,SOCK_DGRAM,0);' W5 h+ a& ~' V8 X' ?" R( i" J
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);0 g: x2 z# ~- b9 m
- addrSrv.sin_family = AF_INET;
) h, N6 L) L0 U! F$ v$ ^2 Y - addrSrv.sin_port = htons(6000);
3 J0 o2 |0 Z! I) R: p% N7 n+ W - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
+ M" u/ Q* j O) S, {( h2 U: E* { - len = sizeof(struct sockaddr);! V0 m" q- E( e, L7 N; |2 I* l
- memset(recvBuf, 0, 100);: s8 Q, k7 C; S O% C
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);- l0 J' d4 r) e/ \+ c! _
- printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));0 s+ m* i; C2 J2 P, T8 @
- printf("Client data is:%s\n",recvBuf);
3 G0 u5 R m% _ - close(sockSrv);- B3 k6 u& C Y- M2 L3 N% Q. B1 a
- return 0;
' E9 _4 w+ ?8 D7 Z; U+ N$ [5 L - }
复制代码 # @2 E- c: S- J( W e5 h+ F
3 h, A* {) I; ^" C; ~
9 J/ w1 G. p8 B, ~% P5 k
4 V; V& x& o( h0 A |
|