管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
服务端:
. U3 v; p8 X# d3 J+ g9 R5 A#include <sys/types.h> $ Q: t( K6 j- H! N- ~* W8 B
#include <sys/socket.h>
( @- O' B* \* s, h- Q f2 r#include <unistd.h> $ _& T1 d5 l$ L6 l3 r6 s
#include <netinet/in.h> 5 [9 v% A! O7 ^0 `6 ^5 H
#include <arpa/inet.h> 7 c) |! S& z1 d; r: v, e6 J! h) p" o! K
#include <string.h>
$ t1 e# L* ]8 H#include <stdio.h>
+ x& U0 X3 w7 _5 [7 {, Kint main() {2 y( V, D! |0 \
int sockClient;! a: C/ n+ r$ y& o
struct sockaddr_in addrSrv;
; S l" K, ~+ k7 ~1 w6 E1 Y0 V sockClient = socket(AF_INET,SOCK_DGRAM,0);" e8 r5 B# H3 }% a0 _
addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
7 v5 q. a: E u% z/ a9 Y- } addrSrv.sin_family=AF_INET;3 I5 Y* I( @7 v& P- o
addrSrv.sin_port=htons(6000);
, ~# e$ b* m6 x! o while(1)
& t- r7 E8 w5 j7 P/ ?, a {- u! u( r, a' j$ u3 d- V
sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
6 M( _8 }' n/ l# H4 Y3 \. K sleep(2);
! l4 ^7 M4 D# E; W/ f8 H' Y1 @ } 1 {" h( _8 r/ b. A/ m$ l
close(sockClient);
D( e6 ^ ~, J return 0; # H/ B* E9 [! t0 t! Q+ X3 I$ m0 J5 l
}& f. X: j; @" k% o; P% D. y. E N
8 Q8 d! c! N. n$ V4 \. z( M
, L8 b0 g5 W7 b+ J" ]9 ?& b1 P- n# Q客户端:- #include <stdio.h> 1 l1 S* f2 o) |. F" `
- #include <sys/types.h> 0 A. J3 h; ?; J
- #include <sys/socket.h> 6 }5 Z I% n8 b; ^- q* ? U: j
- #include <netinet/in.h> % c% U! w9 R+ V' |3 M
- #include <arpa/inet.h>
% ^* q8 i0 S' \+ ` - #include <string.h>
" ^" U' \+ ^- E$ j; Y1 ^) m, l - #include <unistd.h>
. }9 Q3 ] K- J' p+ [ - #include <fcntl.h>
3 m8 ~1 J& h) M& B n; v& N - #include <sys/time.h> ; ~: \+ T4 a: ]" G8 p i9 g
- #include <sys/select.h>
$ c4 q) v* r I9 | Y5 X" M - #include <sys/ioctl.h>
7 ~9 b' c4 u3 M - int main() {/ k2 @$ ^# u: ^
- int sockSrv;
, l2 U# {9 |! e1 z3 \- k% f - struct sockaddr_in addrSrv;$ k1 e5 l: }- I. Y
- int len;' v4 r( a7 ^) D/ Y/ E2 _" T6 \
- char recvBuf[100];, H0 L" H& P9 f' w9 ^ [. ]. _6 U2 r
- scanf("%s",recvBuf);
% L+ B% d {! k$ x! n% h - struct sockaddr_in addrClient;
% u3 d5 ~- z8 d - sockSrv = socket(AF_INET,SOCK_DGRAM,0);
- a' Y+ R7 ^% W' h c - addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
5 [% I4 N! b$ w - addrSrv.sin_family = AF_INET;
' y% z! C* ^- V8 D4 k, `% H7 O - addrSrv.sin_port = htons(6000);
2 t# t/ m. Z8 q2 I1 K' o% K. d - bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
! h, j5 u9 ~+ W/ E* ~ - len = sizeof(struct sockaddr);* M5 u& }* A- K, N) o9 k
- memset(recvBuf, 0, 100);2 u; _9 ~0 U* E. t- R; r8 J3 E4 c
- recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
, G0 h$ ]2 E4 o5 ~# p - printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
+ Q# P" {. [1 i/ M+ I3 X - printf("Client data is:%s\n",recvBuf);; n3 @9 R# `3 h8 c# z* N3 |' n0 V
- close(sockSrv);
7 s8 k/ A% V/ S( N - return 0;* p1 u) f$ T. h$ R9 X' F. c/ ~
- }
复制代码 3 q& F/ R. q( W- @- C( q
* o0 U0 X7 o( O* n1 Q# R1 \* a: i: H6 n6 d# Q
( Z. ^8 B! }' i1 M1 J |
|