C语言模拟TCP通信-------收发数据

本文介绍了一个简单的TCP通信示例,包括客户端和服务端的实现过程。客户端通过connect()发起连接请求,而服务端则通过bind()、listen()和accept()来响应连接。文中详细解释了socket()、send()/recv()等关键函数的使用。

 简介

这篇是我学习网络编程时初次接触到的,感觉挺适合初学者,下文主要介绍了如何使用Linux模拟TCP通信,分为客户端和服务器端两大部分,外加一个总的头文件

 流程

 服务器端和客户端使用TCP的流程如下所示

 

 所用函数

 (1) socket():该函数用于创建一个套接字,同时指定协议和类型。
 (2) bind():该函数将保存在相应地址结构中的地址信息与套接字进行绑定,它主要用于服务器端,客户端创建的套接字可以不绑定定地址。
(3)listen():在服务器端程序成功建立套接字并与地址进行绑定之后通过调用listen()函数将套接字设置成监听模式(被动模式),准备接收客户端的连接请求。
(4)accept():服务器端通过调用accept()函数等待并接收客户端的连接请求。建立好 TCP 连接后,该函数会返回一个新的已连接套接字。

(5)connect():客户端通过该函数向服务器端的监听套接字发送连接请求。
(6)send()和recv():这两个函数通常在 TCP 通信过程中用于发送和接收数据,也可以用在 UDP 中。
(7)sendto()和 recvfrom():这两个函数一般在 UDP 通信过程中用于发送和接收数据。当用在 TCP 时,后面的几个与地址有关的参数不起作用,函数作用等同于 send ()和recv()。

 头文件

#ifndef _NET_H
#define _NET_H

#include <stdi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值