python中socket的tcp学习(1)

让我们来学习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()

这样我们就完成了收和发!

本文分享自微信公众号 - 萌海无涯(mhwyhtwa)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券