管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
% {" ]1 B4 f/ A; @# S" p#include <sys/types.h>
; D- j: U; G# @1 r5 O. X#include <sys/socket.h> # b! K: [' H& j% ^5 [
#include <unistd.h>
4 i. r$ S3 f& D0 A#include <netinet/in.h>
9 f3 f3 n9 `. f' Y/ x( q4 n#include <arpa/inet.h> 3 ]# }) Z, w w: r
#include <string.h> + i* s3 B& u1 W2 I0 b
#include <stdio.h> * [0 ~6 }. J4 Q" c7 ~$ G
int main() {9 B5 c1 f; A2 V
int sockClient;
& p) |( c4 X4 [( f# R* Z: J! q struct sockaddr_in addrSrv;# v5 \0 D9 n1 w
sockClient = socket(AF_INET,SOCK_DGRAM,0);
* @ K }/ C, V$ R# W6 T; _ addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
+ [6 b1 E0 g- {8 f7 `6 [ addrSrv.sin_family=AF_INET;" t+ [ |1 P+ K9 Y
addrSrv.sin_port=htons(6000);. u" E- b1 j% y: t! |$ c
while(1)2 s# C* Q) d, {1 x
{
. S8 P$ M: A- ?, w1 v* B sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
* G! X, H+ W! S3 d# j7 G& a sleep(2);0 q* I- R# f6 ]4 V& x( H- |
}
+ v+ g) T2 W+ C" I close(sockClient); 2 K" C9 @( S9 }! [$ |+ r" U0 Q
return 0;
& ?% q( D- D0 I& _}2 E+ s" s6 S$ w. q8 Y* x% Y
) S7 L4 v W6 P, q% z0 W. c
! v/ f( k5 Y3 q3 a( t客户端:- #include <stdio.h> 2 b# @4 ]! W4 B; q& e3 x6 o0 f
- #include <sys/types.h>
3 v; g- S; A1 Z3 Q! S/ h9 |9 O5 I! l - #include <sys/socket.h>
: a9 ?. _' U3 _ - #include <netinet/in.h>
# }. _ v0 R& I - #include <arpa/inet.h> 6 m# l @6 b1 U
- #include <string.h>
# Q2 Q3 g8 B+ s: H6 I( C - #include <unistd.h> ( v$ P6 d* Y- U: f3 q0 c j
- #include <fcntl.h> ! o+ w# ?5 \! B: r6 m, a
- #include <sys/time.h>
' [ {7 L: H1 Y - #include <sys/select.h> 3 a1 b1 L1 ]# P& A' [3 s* H
- #include <sys/ioctl.h>
' a6 j# P* A4 i2 M: Y5 _ - int main() {
; c/ p, R4 {* Q - int sockSrv;
3 r6 y0 n9 L$ c5 p - struct sockaddr_in addrSrv; x5 F2 Y% P2 R# k9 o
- int len;4 B& |/ g: q) D. A6 D
- char recvBuf[100];9 H4 S% g3 D* r, G Z
- scanf("%s",recvBuf);) _( e- d$ W3 b( w
- struct sockaddr_in addrClient;* B# B9 D% a \! q) q9 Z" a
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);9 [, ~& q2 S- o& c* u
- addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
& \+ j1 f; q0 J$ a - addrSrv.sin_family = AF_INET;
1 }7 h& m# w7 A! W8 ^, C% @2 a5 q - addrSrv.sin_port = htons(6000);
! E: k$ E4 h; n% Z6 H+ ~ - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
$ ^4 L W. ?* W1 C! g& a% T0 ~ - len = sizeof(struct sockaddr);' u [# Q. k: f: _. B3 a2 H% T
- memset(recvBuf, 0, 100);
9 H& D; r! H+ w+ o$ v' F' u - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
7 ^& I. i2 z0 |# b) w - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));- u1 _: p" m+ t7 c o6 G
- printf("Client data is:%s\n",recvBuf);
8 K" M! k, G+ N+ h - close(sockSrv);
2 j/ h/ \! w% F3 g5 H0 i - return 0;
) p- }# I/ z9 D* j - }
复制代码
# d( P3 [+ n: [8 B7 @
+ _7 S* e+ ~0 a. B- h9 m \: M; c5 q7 r7 u7 C# }
# g: v$ o7 t+ O% u' l) @6 c
|
|