您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10192|回复: 1
打印 上一主题 下一主题

[C] C语言学习之Linux下TCP服务器与客户端的实现

[复制链接]
跳转到指定楼层
楼主
发表于 2020-5-9 02:20:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
客户端代码如下:. ?- p8 ^$ f7 w% P5 u
  1. #include- X4 o) a! J( C& A" x" R" L! i
  2. #include
    2 E. Q( d6 S& r  G9 J
  3. #include, Q, w( @" t  e9 H
  4. #include
    3 y6 i9 b( V9 K3 H
  5. #include
    1 F. g- k% c( c% Z- s
  6. #include  H1 e& s! X6 J. B# F; A( J
  7. #include1 z& i1 z* Y1 @0 M) b: Q" b% f
  8. #include
复制代码
6 H0 Q8 _+ t$ E

7 j; B# {; y; P! u% C/ P服务器代码如下:
1 m0 L5 e- O8 J. n2 a/ g3 d( L
  1. #include
    : a+ E6 `* y5 z! V" x4 R
  2. #include' |! z& Y( ?7 E( f; x* _' Q) v5 l
  3. #include1 M" W3 w3 g" N4 Z. J% `
  4. #include
    ' V& y' k/ e% E) G
  5. #include
    & R6 L$ `+ V$ l( q
  6. #include! y  ?) w" M& a
  7. #include
    5 g% o! J3 x" N8 V
  8. #include
复制代码

5 N% D- i8 ]7 U9 U+ j' M, B, A' V6 l! ^

. q8 B& |& f8 _# [; T

( w- w  f$ v5 O9 l* ^! K8 B. J, O
. }" |* K6 L$ y4 }8 t: n/ h# o
* l' O8 C( k+ ]5 D1 R

0 R9 C/ e3 f+ q" w6 M
- M5 _( R. B* q' `  J% H* ]
0 l7 b/ n& h8 V- F; z  Y
. I2 o9 n" p/ C: q6 J6 U

6 E  y% k+ I- n" I9 z) ~

+ B' `7 J" J" u+ z9 q0 I7 J+ u6 D2 d9 C: J1 q5 U  B( Y& o
6 T% d* Q( U  e, L

$ u. ?" d/ ^( z; Q& @+ G8 k' Z$ |" E0 |, c

% c" C. H7 }  C9 a/ ]& x3 t" \  X: @+ v8 M7 b+ K

0 r, A" K3 {! f5 ^& a
% q; H% U, ?9 V  p, p/ _1 z: @

6 A( }4 g& X% m( _4 |  i' y: ?/ S5 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2020-5-9 02:30:12 | 只看该作者
服务端:
7 S; Z$ [' P0 K) |8 |#include <sys/types.h> 
: x* `7 ^& T! j' v5 |+ X3 r; y#include <sys/socket.h> 
0 F' Q. ?) o+ _7 A& o5 A#include <unistd.h> 1 |- J" M$ z: k4 A" X0 l
#include <netinet/in.h> 
% {0 L) @: \0 g0 i$ F$ r9 h; I#include <arpa/inet.h> 
) h0 a) \2 Y# R3 S' Q5 c1 F) u#include <string.h> 
0 q7 m* [- }8 |4 F#include <stdio.h>  ) Q$ t6 J' ^7 o# G8 y' v8 D  A1 K
int main() {5 O% W( _' B2 b  S2 q$ ~4 D7 j' f
        int sockClient;
7 ?* }+ }$ ~8 b8 l$ t& K        struct sockaddr_in addrSrv;; u; _# B% ~; N8 N; @
        sockClient = socket(AF_INET,SOCK_DGRAM,0);
0 \3 r7 l1 F# y! J        addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");6 g* e( q6 k. _- Z# ^0 x8 n6 `7 F
        addrSrv.sin_family=AF_INET;
7 W2 p7 J) W- \1 M! `        addrSrv.sin_port=htons(6000);
* n0 j8 \. q( u        while(1)" |% p4 y% ]1 \# r; n# e
        {+ [- l( r. h! \
                sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));5 D" l9 E. D* S
                sleep(2);
$ ~' X; K% v6 ?& T/ N; ~. ~8 h        }    
7 U' w6 S# _: o/ I        close(sockClient);  ' u9 r& E5 j3 a% u9 {, w6 ]- ~
        return 0; 
6 x) m5 i2 c- t) `9 @0 I}
0 H: `2 ]) T6 \6 G' T( B3 x6 U% x) V1 h
/ g3 @" a9 I( S) V
客户端:
  1. #include <stdio.h> : ]. e* a0 f6 |2 w* }
  2. #include <sys/types.h> 
      x( z9 M2 H5 E! P
  3. #include <sys/socket.h> & r: _+ E+ F& M' V/ A2 L, M
  4. #include <netinet/in.h> 
    / D3 T% T- P3 t1 C2 a1 G% s
  5. #include <arpa/inet.h> 
    8 Y8 g7 r, S. [% b5 U3 |
  6. #include <string.h> 7 q+ S0 b* Z4 ~+ A4 {7 p  k$ ~) K
  7. #include <unistd.h> / e8 ?! {" w5 [+ `  n9 O
  8. #include <fcntl.h>   O' p, e' {0 I
  9. #include <sys/time.h> ) P, q9 O. o8 @  I+ e
  10. #include <sys/select.h> 
    ' B' a% _( X/ E- i4 {, Y3 r
  11. #include <sys/ioctl.h>  6 P5 t6 f; G0 X9 U; i
  12. int main() {
    # p3 G% ^+ [' u8 q0 F1 C
  13.         int sockSrv;
    2 s  E8 ^$ i# \3 q9 X7 o9 O" g; R
  14.         struct sockaddr_in addrSrv;& x; U8 S2 E- z! H
  15.         int len;
    - }, F* ]% i  u: e  z3 M8 I0 V
  16.         char recvBuf[100];
    7 e  A- x) y6 B" G4 F; `
  17.         scanf("%s",recvBuf);5 Y8 X% y3 K0 N, Q: Q
  18.         struct sockaddr_in addrClient;
    & X& l7 q% L  e1 ~4 E, V
  19.         sockSrv = socket(AF_INET,SOCK_DGRAM,0);
    " {0 V8 [* f6 _! U! B# _: b
  20.         addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
    + \9 q. _% x9 n
  21.         addrSrv.sin_family = AF_INET;
    . ?, G0 V% @; O4 J7 v* E7 ?
  22.         addrSrv.sin_port = htons(6000);
    1 Q6 |& m9 B* ?& C1 I) P
  23.         bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));4 @8 u' Z' d' a7 M" o% I
  24.         len = sizeof(struct sockaddr);4 n3 @* @) O# X/ _' m
  25.         memset(recvBuf, 0, 100);
    % E' @) ]9 I& V$ v* T# a
  26.         recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
    , F% m7 |, T' i+ c& t, A. g, y
  27.         printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));# o( `! G$ ^% P7 g
  28.         printf("Client data is:%s\n",recvBuf);  Z; F+ S2 c3 m6 B  B9 Y; T
  29.         close(sockSrv);
    , |" o, h+ @& o9 l4 X
  30.         return 0;; Z7 R, }1 ?2 X9 R" v
  31. } 
复制代码

6 Z8 L, n4 i: g8 E2 `# w1 I" Z! i" q: y
* p: \, T& ]' n+ X  {

! Z- t$ I1 X6 q
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 10:27 , Processed in 0.104423 second(s), 18 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!