管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
沙发
楼主 |
发表于 2020-5-9 02:30:12
|
只看该作者
服务端:
. n) J, L4 a* b, {5 q#include <sys/types.h> . S9 q6 c# Q+ z& K
#include <sys/socket.h>
0 G* h8 A& V4 v#include <unistd.h>
" U+ q9 k# G9 Q5 s' D1 x#include <netinet/in.h>
4 X. J+ n9 i/ {. `#include <arpa/inet.h>
( V) W2 M2 b2 Y3 r#include <string.h>
- W; D2 n- L! k2 K#include <stdio.h>
/ P3 h5 \( f1 @! H& P/ _8 Z# Gint main() {
4 F% ]9 K2 ^+ _( z2 F! M9 G1 c* w int sockClient;
% {/ x# {4 q0 @& j! J/ c2 V( V8 \) \ struct sockaddr_in addrSrv;
0 I5 B. l* x5 l- P/ B sockClient = socket(AF_INET,SOCK_DGRAM,0);
, H4 Z0 W3 y+ ^$ t6 X addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
* g4 ]% D+ K2 R3 P/ i0 Q addrSrv.sin_family=AF_INET;
( ^# H2 v8 L8 l addrSrv.sin_port=htons(6000);
; @; X8 [8 D2 p while(1)
: t3 g; m# X2 P( a {5 N( d5 U( J4 F, B5 E4 s p: [
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
* k* ^; c0 j! y8 I0 z1 y sleep(2);
/ g" {' P& W9 o4 L" O" {9 d } ! i) ^' O$ p4 v3 j( E3 x3 d, U
close(sockClient); $ m& r! S: v( M# ?" } ]7 K
return 0;
- G; S+ e; R! |& W}
# m5 K( W" r( a# S1 Y L' V8 M: P. u& m1 n4 i
: H ]2 }) g! c. N3 Y5 D
客户端:- #include <stdio.h> ! D- h$ i; ], U0 P$ c8 E' \
- #include <sys/types.h> ) `. P" S1 v# u3 T% ]
- #include <sys/socket.h>
( I" s8 t" G% f/ I - #include <netinet/in.h>
) f2 E: W4 n7 z4 b - #include <arpa/inet.h>
c$ R7 e( F7 S) l0 w6 h! c - #include <string.h>
+ x6 i0 g3 S9 n" p - #include <unistd.h>
9 f3 r& f0 \& }) `0 { - #include <fcntl.h>
& X% W' c* N/ {* o1 H( W. Q; S: { - #include <sys/time.h> U5 \( B! y9 S& c! T" [' m$ u- N
- #include <sys/select.h>
; }5 }" y( ~" i' {4 |( e - #include <sys/ioctl.h> , e1 x2 P: {' C
- int main() {
4 a- Q! _6 \- I3 ?6 Y- }0 r; G - int sockSrv;
( v! H# g) [/ X& x4 T- J3 J: q - struct sockaddr_in addrSrv;
: d7 o) @( W- A) g/ U7 t, K* H - int len; C6 J1 B0 E/ L. i
- char recvBuf[100];
9 p; o4 L8 g+ R+ R( V - scanf("%s",recvBuf);
# H; x) o' m* v j9 z. ` - struct sockaddr_in addrClient;$ P( |9 p3 |3 I% Q! k) c( |
- sockSrv = socket(AF_INET,SOCK_DGRAM,0);
' V' ]; ]1 H& h9 ~ - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);- q! W2 K, o+ ? b: g
- addrSrv.sin_family = AF_INET;! \, x! k0 l4 I, _4 L+ c# ~5 h! H
- addrSrv.sin_port = htons(6000);
! t+ l1 I! l) L - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
7 I! [4 c- x8 @5 v - len = sizeof(struct sockaddr);! s3 ?& e& \0 e7 `
- memset(recvBuf, 0, 100);
8 @0 Z2 O& n( f2 u: w8 v& v! d7 h - recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
( N8 G9 f/ X6 g5 Z' N4 _ - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));* t8 X4 E" ?" C' W# |$ {# w
- printf("Client data is:%s\n",recvBuf);
7 _8 E$ }# b7 d6 a$ k& a1 Z1 m - close(sockSrv);, ]0 N5 |% X( v: I
- return 0;% m, A" F7 R3 X: d
- }
复制代码 8 d$ ^8 [( Q; W3 I# u/ X
1 @7 N0 t* v; r6 v8 [. [3 i; M# _& X
3 u* I0 e' J1 ~5 n
8 x1 [$ N( V( \6 u |
|