TCP套接字编程
来源:互联网 发布:淘宝一次性口罩卫生吗 编辑:程序博客网 时间:2024/05/14 07:31
网络编程又称为套接字编程,为了与远程计算机进行数据传输,需要连接到因特网,而编程中的“套接字”就是用来连接该网络的工具。它本身具有连接的含义,还可以表示为两台计算机之间的网络连接。
1.调用socket函数创建套接字
2.调用bind函数分配IP地址和端口号
3.调用listen函数转为可接收请求状态
4.调用accept函数受理连接请求
基于TCP的服务端、客户端
TCP服务器端默认函数调用顺序:
socket() 创建套接字bind() 分配套接字地址
listen() 等待连接请求状态
accept() 允许连接
reac()/write() 数据交换
close() 断开连接
TCP客户端默认函数调用顺序:
socket() 创建套接字
connect() 请求连接
read()/write() 交换数据
close() 断开连接
1)、创建套接字#include<sys/socket.h>int socket(int domain,int type,int protocol);domain: 套接字中使用的协议族信息
type: 套接字数据传输类型信息
protocol:计算机通信中使用的协议信息
2)、分配套接字的IP地址和端口号
#include<sys/socket.h>int bind(int sockfd,struct sockaddr *myaddr,socklen_t addrlen);sockfd:要分配地址信息(IP地址和端口号)的套接字文件描述符
myaddr:存有地址信息的结构体变量地址值
addrlen:第二个结构体变量的长度
3)进入等待连接请求状态
#include<sys/socket.h>int listen(int sock,int backlog);sock: 希望进入等待连接请求状态的套接字文件描述符,传递的描述符套接字参数称为服务器端套接字(监听)
backlog:连接请求队列的长度,若为5,则队列长度为5
服务端处于等待连接请求状态是指,客户端请求连接时,受理连接前一直使请求处于等待状态。
4)受理客户端连接请求
#include<sys/socket.h>int accept(int sock,struct sockaddr *addr,socklen_t *addrlen);sock 服务器套接字的文件描述符
addr 保存发起连接请求的客户端地址信息的变量地址值,调用函数后向传递来的地址变量参数填充客户端地址信息
addrlen 第二个参数addr结构体的长度,但是存有长度的变量地址。
5)客户端进行连接
#include<sys/socket.h>int connect(int sock,struct sockaddr *servaddr,socklen_t addrlen);sock: 客户端套接字文件描述符
serveraddr: 保存目标服务器地址信息的变量地址值
addrlen 以字节为单位传递已传递给第二个结构体参数servaddr的地址变量长度
阅读全文
1 0
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- TCP套接字编程
- 基本TCP套接字编程
- TCP套接字编程模型
- Java TCP套接字编程
- 【socket】TCP套接字编程
- 基本tcp套接字编程
- 基本TCP套接字编程
- 基本TCP套接字编程
- LaTeX数学公式初级
- Android矢量图
- 用原生css使div隐藏滚动条,保留鼠标滚动效果。
- 深入理解docker的link机制
- RabbitMQ学习心得——工作队列
- TCP套接字编程
- Serializable和Parcelable的区别
- JAVA 内部类详解
- sublime text3 unicode 中文转换
- 内存可见性和原子性:Synchronized和Volatile的比较
- motion
- 文件常用类的整理
- Deepin 15.5 使用DataGrip可视化操作Oracle数据库
- 解决centos7下 客户端不能连接redis 报错 及 后台运行的问题