让我们来学习tcp看看有什么区别!
Python 实现socket tcp通信还是比较简单的。
tcp分为客户端,和服务器两部分。
大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。
举个例子,当我们在浏览器中访问新浪时,我们自己的计算机就是客户端,浏览器会主动向新浪的服务器发起连接。如果一切顺利,新浪的服务器接受了我们的连接,一个TCP连接就建立起来的,后面的通信就是发送网页内容了。
比如,我们的在用的QQ,微信,浏览器之类的都能归属到客户端中
我们建立一个客户端的套接字:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
创建Socket
时,AF_INET
指定使用IPv4协议,SOCK_STREAM
表示是TCP。
现在只是创建好了一个对象,没有实际连接。
由于我们还没有搭建自己的服务端,所以可以先尝试连接网站也是可以的。
创建连接:
# 内部是个元祖,别忘了少个括号s.connect(("www.baidu.com",80))
搭建好了连接,就好比电话拨通了号码,等待我们说话了。
发送数据:
# 使用utf-8进行编码s.send("hello world".encode("utf-8"))
这里编码问题,我们本次不进行讲解
那么我们发送完毕了,怎么才能知道别人给我们说了什么呢?
下面我们来接收信息:
# 接收数据msg s.()# 打印数据内容,解码为utf-8print(msg.decode("utf-8"))# 返回的内容# 'HTTP/1.1 400 Bad Request\r\n\r\n'
最后还有关闭连接!
# 关闭套接字s.close()
这样我们就完成了收和发!