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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2020-5-9 02:20:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
客户端代码如下:
8 ?* S* l5 b$ Q& z) X) ?% t! w  Y
  1. #include
    0 E' H  a4 k/ w" Y
  2. #include
    9 x) X  p8 W: M0 X% c; }
  3. #include
    . B  D; ~: G) I6 x. h
  4. #include
    1 k& [: @1 Z  Z
  5. #include
    , M" v! R  r/ X
  6. #include) N$ _' G& U/ q
  7. #include
    + w7 v& b" i: {' u* S* `& z0 I2 ?
  8. #include
复制代码

  d; D/ S* Y3 E- T
; i/ P# X0 y# J! d, J5 h' v5 `服务器代码如下:7 B. X5 ]8 D9 j$ v3 z6 f! J
  1. #include
    2 ~" I  w# S5 c. \8 P
  2. #include
    ( N! V  h: Q3 ?; B1 h
  3. #include0 Y+ g9 \4 s7 }
  4. #include
    6 h  I  @) z6 B' \2 O
  5. #include8 F* X7 F1 p3 Q$ D* l
  6. #include. E+ g/ t" K: d* o$ ], s
  7. #include  V, `' T6 B; I) g; v7 O; U
  8. #include
复制代码

) t6 u8 L! Z8 y- `' m  c
. C1 C' {" z  d
: @" z" T+ z$ x; Z' ~
6 s. g; }5 q; Y

1 H+ K. n/ \( k0 J2 V( H, T; j
& i4 B5 T  E7 q/ ?- l; o( ]" i/ G

$ v% U( y, L$ e& a3 @. ]
* }( v! K) F% M

: X- U# h$ s2 T6 }% _  [

$ p4 `1 [) Z! @2 s4 ~( t" b9 P2 C( ]& {- \5 B; n1 b

- u9 h) ?' s$ l5 {& ~$ C. x# j0 v# {" c( x" k7 L
$ p" K4 j  O0 E! ^* q! h- X

" S1 h- @: P# ~2 j, Q+ a

: O9 T$ N. |3 X1 l8 `" c1 }* R* ^" I9 o) K3 y2 i+ S/ X

- Z; X/ L9 M' z7 Z# x( Y6 _5 \5 ^% |* a8 F; a

! W* t# T0 l) r. V$ `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2020-5-9 02:30:12 | 只看该作者
服务端:
. c3 y' e; F' A0 ]4 ?7 I: N#include <sys/types.h> 
, @' b% s/ c! ^0 i5 e: X#include <sys/socket.h> 
+ m. \9 r' b& X+ G7 v& M#include <unistd.h> 
; b$ C3 o3 ~# ?( s. m2 ?#include <netinet/in.h> 
/ G) v, k% p( I- ]#include <arpa/inet.h> 
: I1 P% b8 c7 ]% R/ w* i#include <string.h> 
$ w4 F2 k* @6 a! X6 }6 y#include <stdio.h>  % ?3 {8 R( n  L# f
int main() {$ g: m3 U4 k0 N- ?8 L: t% f0 O
        int sockClient;2 o; b! G, v5 O4 W+ Z7 \# u
        struct sockaddr_in addrSrv;& m  T5 {3 }/ D  }
        sockClient = socket(AF_INET,SOCK_DGRAM,0);1 J6 c0 P+ ]2 ^! f
        addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");8 ?( R2 p& m6 L% m" |
        addrSrv.sin_family=AF_INET;3 X/ R" Q! t, _: u2 M1 s
        addrSrv.sin_port=htons(6000);7 n5 I( d1 t# t: k2 ~
        while(1)
2 z4 u+ S+ e+ u+ }- {        {/ W( P1 B4 ~1 {5 o
                sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));1 z1 h$ W5 N( W
                sleep(2);$ D' [: t/ ^" U! k- ]
        }    
8 x* d; Y5 B& I7 a3 X7 m5 I        close(sockClient);  
/ h$ p$ k" q1 R& ]# E        return 0; / y2 m4 {5 P' P2 E+ u9 G# E' r
}* M& S, K* I1 M. y

. o$ [2 g9 }0 i, ?
2 C( [! Q3 S8 H4 u9 M# K  a客户端:
  1. #include <stdio.h> 
    2 W, t9 Q" |0 o
  2. #include <sys/types.h> ! x$ K" \: V" ^3 [" D( g
  3. #include <sys/socket.h> & Z$ E1 |! G( R3 B; {
  4. #include <netinet/in.h> 
    ) B; x5 ]* j8 k% O
  5. #include <arpa/inet.h> 
    . p" _: Q; _$ q4 ]) d4 S( G
  6. #include <string.h> 
    0 T( n3 P+ r5 T
  7. #include <unistd.h> : [7 P. O, N4 z5 t% W) [
  8. #include <fcntl.h> 
    8 R- H2 ]2 ~+ k( z) \; B. u" B
  9. #include <sys/time.h> 8 w& t# X, |3 T6 T0 r  c; c9 c
  10. #include <sys/select.h> 2 S) N/ E* o: \7 z5 _7 N# f2 U5 f
  11. #include <sys/ioctl.h>  
    : I+ C1 j' n1 u$ `
  12. int main() {2 b) s5 |8 T( H( N: x, D$ ?
  13.         int sockSrv;
    # B+ t; q( k, I8 _; O1 U+ d7 S
  14.         struct sockaddr_in addrSrv;! S, Q. U+ B* R9 c4 j* c2 C1 _
  15.         int len;
    % \  |. r) [) d
  16.         char recvBuf[100];6 F4 ]3 f1 O" E2 ]. v6 n2 S
  17.         scanf("%s",recvBuf);( \) B) x" i, X) m$ W
  18.         struct sockaddr_in addrClient;$ C- d6 x$ n- Z3 F8 U
  19.         sockSrv = socket(AF_INET,SOCK_DGRAM,0);" W( [# s3 O9 h3 A) D
  20.         addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);
    2 \6 z4 k' C: h! [
  21.         addrSrv.sin_family = AF_INET;
    " i! t' Z+ F* k& F; K6 A/ ~2 O; S
  22.         addrSrv.sin_port = htons(6000);
    6 u8 i2 |, v: X/ J
  23.         bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));# @: H5 T8 e3 @' D9 p, X: _
  24.         len = sizeof(struct sockaddr);. r9 |0 T- P% Q" ]& s" ]
  25.         memset(recvBuf, 0, 100);
    6 q0 k% A% R6 c9 s' r5 V
  26.         recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);
    6 }, ~  x* ?0 V  ?, K9 ]
  27.         printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));
    & b* L7 B; [. i/ ^
  28.         printf("Client data is:%s\n",recvBuf);
    ' _) p* ~! L; K- o% S
  29.         close(sockSrv);
    & b9 Q2 T+ R/ z9 h0 @; U& f
  30.         return 0;
    # k( ]/ J. @, V, i3 A
  31. } 
复制代码
4 r( ^9 n5 I* @/ \: P9 C

& a% ]" P# A  A! E- y1 G1 u% j9 l; k) u2 G

% u1 W. M/ d% G  |3 Z
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-4-24 10:47 , Processed in 0.127271 second(s), 20 queries .

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