TCP 服务器客户端程序设计

本文介绍了TCP服务器客户端程序设计,讲解了socket的基本概念、套接字地址结构、TCP编程的关键步骤,包括bind、connect、listen、accept、send和recv函数的使用。通过详细的过程描述,展示了在Fedora操作系统上如何编写和运行TCP服务器和客户端程序。
摘要由CSDN通过智能技术生成

一、socket 简介

  1、socket 是网络编程的一种接口,它是一种接口,它是一种特殊的I/O,用socket函数建立一个socket 连接,此函数返回一个整形的socket描述符,随后进行数据传输。

    

-----------------------------------------------------------------
 #include <sys/socket.h>
 int socket(int family,int type,int protocol);    
      返回:非负描述字---成功   -1---失败
 -----------------------------------------------------------------

  第一个参数指明了协议簇,目前支持5种协议簇,最常用的有AF_INET(IPv4协议)和AF_INET6(IPv6协议);第二个参数指明套接口类型,有三种类型可选:SOCK_STREAM(字节流套接口)、SOCK_DGRAM(数据报套接口)和SOCK_RAW(原始套接口);如果套接口类型不是原始套接口,那么第三个参数就为0。

       通常socket分为三种类型:流式socket  数据报socket 原始socket

      注意:一个完整的socket有一个本地唯一的socket号,由操作系统分配。最重要的是面向客户/服务器模型而设计的。

  2、一个IP地址,一个通讯端口,就能确定一个通讯程序的位置,为此开发人员专门设计了一个套接结构,就是把网络程序中所用到的网络地址和端口信息放在一个结构体中。

       一般套接口地址结构都以“socketaddr"开头。socket 根据所使用的协议的不同可分为TCP套接口和UDP套接口,又称为流式套接口和数据套接口。

        UDP是一个无连接协议,TCP是个可靠的端对端协议。传输UDP数据包时,LINUX不知道也不关心它们是否已经安全到达目的地,而传输TCP数据包时,则应先建立连接以保证传输的数据被正确接收。

3、两个重要的数据类型:sockadd和sockaddr_in,这两个结构类型都是用来保存socket信息的,如IP地址、通信端口等。

          

         

3、TCP编程 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sunshine_gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值