Python 网络编程 socket编程

socket编程

套接字:指的就是通过代码来创建实现通信的两个端 服务器端和客户端

socket一般可以基于TCP(可靠传输)和UDP(可不靠传输) 实现客户端和服务器之间的可靠传输和不可靠传输

python 中的内置模块socket可以支持socket编程

import socket

服务器端

1.创建服务器套接字对象

server = socket.socket()

family 参数确定服务类型 AF_INET -->ipv4 AF_INET6 --> IPV6

type确定传输协议类型 SOCK_STREAM --> TCP协议 SOCK_DGRAM --> UDP协议

参数都有默认值

2.绑定IP地址和端口

server.bind((ip,端口))

Address:(ip地址字符串,端口号)

端口号是用来区分一个计算机中不同的服务,范围是 0 ~ 65535

一般使用 8080端口进行测试

1.其中 0 ~ 1024是著名端口,用来绑定一些特殊服务

2.同一时间同一端口只能绑定一个服务

3.监听请求

server.listen(50)

参数用来限制一次性能够接受的客户端请求数量

保证服务器处于一直启动的状态

while True:

4.接受客户端的请求

client,addr = server.accept()

accept()会阻塞线程,当有客户端给这个服务器发送请求时,才会开始执行

5.给客户端发送信息

str1 = input('发送客户端:')
client.send(bytes(str1.encoding='utf-8'))

send(数据):数据必须是二进制数据(bytes)类型

bytes(字符串,encoding='编码方式')

字符串.encode(encoding=编码方式)

6.接受从客户端发来的消息

data = client.recv(1024)
str1 = str(data,encoding='utf-8')

recv的参数设置缓存大小 单位是字节

二进制(bytes)转换成字符串(str):

a. str(二进制数据,encoding ='utf-8')

b. data.decode(encoding = 'utf-8')

7.关闭连接

client.close()

客户端

1.创建套接字对象

client = socket.socket()

2.连接服务器

client.connect(('10.7.181.61',8080))

3.发送信息

str = input('--》》》')
client.send('安排'.encode(encoding='utf-8'))

4.接受信息

data = client.recv(1024)
print('接受到的服务器数据:',data.decode(encoding='utf-8'))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 6.1 公钥密钥加密原理 6.1.1 基础知识 密钥:一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算...
    AndroidMaster阅读 4,094评论 1 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,338评论 19 139
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,586评论 0 6
  • 我的恋爱确切的说只有3段,第一次我喜欢她,她也有点喜欢我。第二次他喜欢我,我试着跟她处了一段时间。第三段我们...
    生虎日记阅读 227评论 0 0
  • 今天上午去医院做大排畸筛查。 躺在那张小小的床上,心里既期待又有些许的紧张,宝宝一直在腹中动来动去,让我感到安慰。...
    幽兰的从O到1阅读 229评论 1 0

友情链接更多精彩内容