计算机网络笔记:TCP的socket通信编程总结

TCP Socket是一种基于Client-Server的编程模型,服务端监听客户端的连接请求,一旦建立连接即可以进行数据传输。对TCP Socket编程分为客户端和服务端,两者关系如下图:
在这里插入图片描述
一些重要的函数:
1、socket函数
使用给定的地址族、套接字类型、协议编号(默认为0)来创建套接字。

1 socket.socket([family[, type[, proto]]])
2 family : AF_INET (默认ipv4), AF_INET6(ipv6) or AF_UNIX(Unix系统进程间通信).
3 type : SOCK_STREAM (TCP), SOCK_DGRAM(UDP) .
4 protocol : 一般为0或者默认
5 如果socket创建失败会抛出一个socket.error异常

客户端的函数

(1)bind函数
将套接字绑定到地址, python下以元组(host,port)的形式表示地址。

1.s.bind(address)
2.s为socket.socket()返回的套接字对象
3.address为元组(host,port)
4.host: ip地址, 为一个字符串
5.post: 自定义主机号, 为整型

(2)listen函数
使服务器的这个端口和IP处于监听状态,等待网络中某一客户机的连接请求。如果客户端有连接请求,端口就会接受这个连接。

1. s.listen(backlog)
2. s为socket.socket()返回的套接字对象
3. backlog : 操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了

(3)accept函数
接受远程计算机的连接请求,建立起与客户机之间的通信连接。服务器处于监听状态时,如果某时刻获得客户机的连接请求,此时并不是立即处理这个请求,而是将这个请求放在等待队列中,当系统空闲时再处理客户机的连接请求。

1. s.accept()
2. s为socket.socket()返回的套接字对象
3. 返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据。address是连接客户端的地址

3 客户端函数
(1)connect函数
用来请求连接远程服务器

1 s.connect(address)
2 s为socket.socket()返回的套接字对象
3 address : 格式为元组(hostname,port),如果连接出错,返回socket.error错误

4 通用函数

(1)recv函数

接收远端主机传来的数据

s.recv(bufsize[,flag])
s为socket.socket()返回的套接字对象
bufsize : 指定要接收的数据大小
flag : 提供有关消息的其他信息,通常可以忽略
返回值为数据以字符串形式

(2)send函数
发送数据给指定的远端主机

1 #python
2 s.send(string[,flag])
3 s为socket.socket()返回的套接字对象
4 string : 要发送的字符串数据
5 flag : 提供有关消息的其他信息,通常可以忽略
6 返回值是要发送的字节数量,该数量可能小于string的字节大小。
7 s.sendall(string[,flag])
8 #完整发送TCP数据。将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据。
9 返回值 : 成功返回None,失败则抛出异常。

(3)close函数
关闭套接字

 s.close()

s为socket.socket()返回的套接字对象

发布了117 篇原创文章 · 获赞 10 · 访问量 3137

猜你喜欢

转载自blog.csdn.net/weixin_43484977/article/details/105298917