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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2020-5-9 02:20:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
客户端代码如下:
1 T7 L5 z: o, I
  1. #include3 K+ P9 A; V( d, Z
  2. #include. P1 t+ g5 ~% \( y/ u
  3. #include' `  L0 S# i" R' E0 W. L
  4. #include
    ! z0 j& V5 |& }+ Y/ n+ J
  5. #include
    + X3 @( g' g2 f! X
  6. #include+ h, ~0 e, B/ I$ C, C
  7. #include1 y" E# L" d* C) O
  8. #include
复制代码

) Z/ }+ m2 B" l; F% p& u' r7 s5 @1 @0 s& B
服务器代码如下:7 L2 v1 F* }( I, Q; N
  1. #include
    3 G" ^# d9 ^0 H3 }
  2. #include/ X  ~1 |3 V! {& R6 Q
  3. #include
    1 v+ O$ o7 Q# C+ N$ R0 i' l
  4. #include2 {5 B7 Z% Q# B. s& w) ~
  5. #include
    2 _7 R  S( I3 j8 l
  6. #include8 M1 k! P* R) @3 l( R1 Y3 o
  7. #include* ?" Q0 K9 P6 U+ F% d
  8. #include
复制代码

4 `2 q$ j& ~) h5 K+ \7 f! I$ f. `
6 n+ y7 I; T8 x3 i$ L: j
3 w( `; y9 k$ W& R: l
1 P  X( U1 {$ Y' u! M$ A2 J$ U

5 A( U( d1 E" v( u
; d" S4 g/ c) k* [( y

% X& N3 U" u: h* u  {, B7 s5 x6 M
. `' B1 w3 w, F

, C* Z6 w* `/ d* \, I
. C8 p; c4 w' t. m( U$ o9 H0 K  Z. M
! d, G& U# o3 ]% V8 [7 H( k/ `3 u

6 ]+ P5 V! ~6 `

, L# T2 U0 z7 f+ G+ i
9 B5 c+ B* Q5 J+ d: D; i( N. t; U
7 A* Z2 Q3 T) n: Y0 u0 F0 i

8 C( v, @7 X" Z# _% i$ C# B
$ g! L' Q8 K% M% [

) b( L1 k2 i! l* p+ s6 U

8 w+ b/ e: W* q$ F$ ]% q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2020-5-9 02:30:12 | 只看该作者
服务端:+ y, ?3 l5 I3 k1 k1 I: B+ \
#include <sys/types.h> 
- P, Y6 J6 D# E/ _' [: Y8 G, \8 w  q#include <sys/socket.h> 
# E2 ^5 _6 t! A9 `0 x- K#include <unistd.h> . \% W7 s! z/ |: ]" w. P
#include <netinet/in.h> 
- Q$ \' w: y& g6 D#include <arpa/inet.h> 
3 D/ z9 Y) N/ p) F#include <string.h> 
! l* j, c) P" ]& y$ C: a% O#include <stdio.h>  
) s- s3 i  W/ [& E1 U, x! ?1 |5 pint main() {
9 L. S; {+ y5 p! M- K% H        int sockClient;5 ^$ u( ?, Q- N1 s- k
        struct sockaddr_in addrSrv;
. M8 }2 x2 P4 G1 Y; _4 I        sockClient = socket(AF_INET,SOCK_DGRAM,0);
: m/ V5 k2 P0 O% p) i' p        addrSrv.sin_addr.s_addr=inet_addr("127.0.0.1");
: k- F2 m. k0 A  u$ Z. H% N        addrSrv.sin_family=AF_INET;
3 b6 ^: {1 l8 a: k2 v        addrSrv.sin_port=htons(6000);
( ]4 M  o9 f6 `  _. I/ p& q; c5 F        while(1)
) b$ F5 T# ^0 m9 j! V5 m1 J        {/ k6 m. M7 K2 k% u
                sendto(sockClient,"Hello World",strlen("Hello World")+1,0,(struct sockaddr*)&addrSrv,sizeof(struct sockaddr));
7 V, l- |) ~4 _9 t  t                sleep(2);
6 D0 g- b+ h  b& m! d* g0 f7 m/ [# M        }    , D7 I: l/ N7 R4 ^- t
        close(sockClient);  9 N/ S0 m& W8 Y* ^
        return 0; , J$ J8 l) v; d, b! w0 X3 j7 d
}& Y" f$ \! K, @8 K; N( ?+ B

6 q4 s! A9 j: ]$ |( A. o; [+ ^7 s- r! D1 [, M9 C( n# p4 R! r* E" b/ D
客户端:
  1. #include <stdio.h>   m& b" y: X  ~! z. L' |
  2. #include <sys/types.h> 5 Z3 m" L; B! d, M
  3. #include <sys/socket.h> * ?# z; j  O2 O& g( N( Q
  4. #include <netinet/in.h> 4 ~( U; j& c3 N/ X
  5. #include <arpa/inet.h> 
    ' G, i" j" @5 {% n, f
  6. #include <string.h> , T; g) f( \  ?
  7. #include <unistd.h> 
    ' y# A. f' n8 e7 x4 m# B" H8 D; ~/ E
  8. #include <fcntl.h> 
    9 G1 ?5 b; r/ a  ?# J
  9. #include <sys/time.h> ' D# A1 x: z; w4 {+ ~
  10. #include <sys/select.h> 
    6 d6 }7 p, p0 m
  11. #include <sys/ioctl.h>  % `. V9 n) O! y$ W/ A$ m7 a
  12. int main() {
    1 O, N( I& y5 d6 x
  13.         int sockSrv;
    + P* Z9 U" d# o; t5 l4 J2 L
  14.         struct sockaddr_in addrSrv;
    " D9 P- f  k3 ~
  15.         int len;% V- V: z1 V0 E: w
  16.         char recvBuf[100];
    ) b! N, C( s! \
  17.         scanf("%s",recvBuf);
    ' ?- J$ }' U7 m& q4 W# j8 s
  18.         struct sockaddr_in addrClient;" y# V# w4 Z' g
  19.         sockSrv = socket(AF_INET,SOCK_DGRAM,0);
    ' g7 o8 H$ z5 r9 Z; r
  20.         addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);1 h& G# n9 R' N* \, u2 |
  21.         addrSrv.sin_family = AF_INET;% p2 D- h( V8 I! O* S+ r5 c
  22.         addrSrv.sin_port = htons(6000);
    3 |3 e4 _2 J8 ]9 X3 Q/ B! l# Y
  23.         bind(sockSrv, (struct sockaddr *)&addrSrv, sizeof(struct sockaddr));
    % S8 Z3 {; x. V7 V9 S
  24.         len = sizeof(struct sockaddr);
    : }2 f6 Q. P' _) }: p
  25.         memset(recvBuf, 0, 100);/ l: a% E) u! V- r  }$ C0 w% v3 X
  26.         recvfrom(sockSrv, recvBuf, 100, 0, (struct sockaddr *)&addrClient,&len);. Y4 b% s- n, b4 [
  27.         printf("客户端的IP地址:%s\r\n",inet_ntoa(addrClient.sin_addr));3 f  t1 v* h9 z: b
  28.         printf("Client data is:%s\n",recvBuf);6 e5 d8 J& q$ T2 Z; ?
  29.         close(sockSrv);, \0 j" k5 G+ t; O+ d0 S6 |6 N1 [8 y& ]
  30.         return 0;
    6 }3 U3 H& t4 o' C
  31. } 
复制代码
( g7 C6 O! k- {  o; J+ U4 _

  ~5 t3 M- q" t$ j1 n
/ w6 _; h2 x7 U6 u6 S0 l, V0 E* u' }
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:06 , Processed in 0.066030 second(s), 18 queries .

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