当前位置: 首页 > wzjs >正文

玉林做网站公司高端网站定制开发

玉林做网站公司,高端网站定制开发,教你做兼职的网站,企业网站加速前言:本篇讲解的是TCP中建立连接请求的客户端程序和等待接受连接请求的服务端程序 ​ TCP客户端程序开发流程及应用实践 1. socket 模块 socket 又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使…

前言:本篇讲解的是TCP中建立连接请求的客户端程序和等待接受连接请求的服务端程序

TCP客户端程序开发流程及应用实践

1. socket 模块

socket 又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

# 导⼊socket模块
import socket
# 创建客户端socket对象使⽤socket类
socket.socket(AddressFamily, Type)

2.客户端socket类的参数和方法说明: 

参数名说明
AddressFamilyIP地址类型, 分为IPv4和IPv6

Type

传输协议类型

3. 开发客户端需要使用的函数(TCP):

方法名说明
connect和服务端套接字建立连接
send发送数据
recv接受数据
accept()被动接受TCP客户端连接,(阻塞式)等待连接的到来
connect()主动初始化TCP服务器连接
close关闭连接

4.基本语法(五步走)

# 客户端程序
import socket
# 创建socked对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 建立与服务器的连接
connect = s.connect_ex(('127.0.0.1', 9090))
# 发送数据
s.send('holly')
# 关闭连接
s.close()

 5.示例代码:

import socket
if __name__ == '__main__':# 1、创建客户端套接字对象#socket.AF_INET--- 使⽤IPv4协议,AF_INET6---使⽤IPv6协议#socket.SOCK_STREAM--- 使⽤TCP协议,SOCK_DGRAM---使⽤UDP协议tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、和服务器端套接字建⽴连接(参数必须是⼀个元祖)tcp_client_socket.connect(("127.0.0.1", 8080))# 3、发送数据tcp_client_socket.send('hello, 你好啊'.encode(encoding='utf-8'))# tcp_client_socket.send('hello, 你好啊'.encode(encoding='gbk'))# 4、接收数据recv_data = tcp_client_socket.recv(1024).decode('utf-8')# recv_data = tcp_client_socket.recv(1024).decode('gbk')print(f"接收到的数据为:{recv_data}")# 5、关闭客户端套接字tcp_client_socket.close()

TCP服务器端开发流程及应用实践

 1.客户端socket类的参数和方法说明:

参数名说明
AddressFamilyIP地址类型, 分为IPv4和IPv6

Type

传输协议类型

2.开发服务器端需要使用的函数:

方法名

说明
bind绑定IP地址和端口号
listen设置监听
accept等待接受客户端的连接请求
send发送数据
recv接收数据

3.基本语法(七步走)

# 服务端程序
import socket# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# socket.AF_INET表示使用IPv4地址
# socket.SOCK_STREAM表示使用TCP协议# 绑定IP和端口号
s.bind(('127.0.0.1', 9099))
# '127.0.0.1'是本机地址,9099是监听的端口号# 开启监听客户端的请求
s.listen(50)
# 参数50表示最大连接数,即同一时间可以等待的最大未处理连接数量print("服务器启动,等待客户端连接...")# 接受客户端的连接请求
c_socket, c_ipport = s.accept()
# accept()方法阻塞等待客户端连接,连接成功后返回一个新的socket对象c_socket和客户端的地址信息c_ipport
print(f'来自{c_ipport}的客户端已连接')# 接收客户端发送的数据
c_data = c_socket.recv(1024)  # 使用1024字节的缓冲区
# recv(1024)表示最多接收1024字节的数据
print(f'客户端发送来的请求: {c_data.decode()}')
# 使用decode()方法将接收到的字节串数据解码为字符串# 关闭与客户端的连接
c_socket.close()
# 关闭与客户端的连接,释放资源# 关闭服务端socket
s.close()
# 关闭服务端socket,停止监听端口

4.示例代码

import socket
if __name__ == '__main__':# 1、创建服务器端套接字对象tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、绑定IP地址与端⼝号, 127.0.0.1---本机IP,默认可以不写tcp_server_socket.bind(("", 8888))# 3、开启监听,默认最⼤连接数为128tcp_server_socket.listen(128)# 4、等待接收客户端连接请求conn_socket, ip_port = tcp_server_socket.accept()print('客户端IP+端⼝:', ip_port)# 5、接收数据recv_data = conn_socket.recv(1024)print('接收到的数据:', recv_data.decode())# 6、发送数据conn_socket.send("客户端的数据已经收到了".encode())# 7、关闭套接字,释放资源conn_socket.close()tcp_server_socket.close()

总结示例代码:

客户端代码

# 客户端程序
import socket  # 导入socket模块,用于创建和管理网络连接# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# socket.AF_INET表示使用IPv4地址
# socket.SOCK_STREAM表示使用TCP协议# 建立与服务器的连接
connect = s.connect_ex(('127.0.0.1', 9099))
# connect_ex()方法用于建立连接,返回值为0表示连接成功,非0表示连接失败
# '127.0.0.1'是服务器的IP地址,9099是服务器监听的端口号# 检查连接是否成功
if connect == 0:print("连接成功")# 发送数据s.send('holly'.encode())  # 将字符串编码为字节串后发送# send()方法用于发送数据,需要传入字节串类型的数据
else:print(f"连接失败,错误码: {connect}")# 关闭连接
s.close()  # 关闭socket连接,释放资源

服务端代码

# 服务端程序
import socket# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# socket.AF_INET表示使用IPv4地址
# socket.SOCK_STREAM表示使用TCP协议# 绑定IP和端口号
s.bind(('127.0.0.1', 9099))
# '127.0.0.1'是本机地址,9099是监听的端口号# 开启监听客户端的请求
s.listen(50)
# 参数50表示最大连接数,即同一时间可以等待的最大未处理连接数量print("服务器启动,等待客户端连接...")# 接受客户端的连接请求
c_socket, c_ipport = s.accept()
# accept()方法阻塞等待客户端连接,连接成功后返回一个新的socket对象c_socket和客户端的地址信息c_ipport
print(f'来自{c_ipport}的客户端已连接')# 接收客户端发送的数据
msg = ''
while True:c_data = c_socket.recv(1)  # 使用1024字节的缓冲区print(f'客户端发送来的请求: {c_data.decode()}')msg += c_data.decode()if len(c_data)==0:break# recv(1024)表示最多接收1024字节的数据
# print(f'客户端发送来的请求: {c_data.decode()}')
print(msg)
# 使用decode()方法将接收到的字节串数据解码为字符串# 关闭与客户端的连接
c_socket.close()
# 关闭与客户端的连接,释放资源# 关闭服务端socket
s.close()
# 关闭服务端socket,停止监听端口

分别运行客户端和服务端

客户端输出结果

服务端输出结果

    http://www.dtcms.com/wzjs/518736.html

    相关文章:

  1. 阿里云 wordpress建站关键词推广方式
  2. 做牙的网站叫什么搜索引擎分类
  3. 重庆市全面解封seo矩阵培训
  4. 查看网站是由什么开源做的seo基础教程
  5. js做网站怎么买到精准客户的电话
  6. 北京网站开发培训宁德seo培训
  7. 婚纱摄影网站论文同城推广有什么平台
  8. 站长工具seo综合查询下载安装今日头条网页版入口
  9. 携程旅游网站建设的定位网站优化推广招聘
  10. 江门免费建站公司市场营销推广方案
  11. 东莞商城网站建设免费推广渠道有哪些
  12. 无码一级a做爰片免费网站十大骗子教育培训机构
  13. asp.net 做网站文章是怎么存储的网站很卡如何优化
  14. 网站开发需要的所有技术微信推广图片
  15. 怎么做游戏和网站漏洞百度seo和sem
  16. 办文明网站做文明网民活动方案百度正版下载恢复百度
  17. 做英文网站怎么赚钱淘宝关键词搜索排名
  18. 创意产品设计书深圳网站优化网站
  19. wordpress开发手机主题教程上海关键词优化公司bwyseo
  20. 宣传网站怎么做如何免费做网站推广的
  21. 高邮城乡建设网站营销课程
  22. wordpress主题enfoldseo托管服务
  23. 制作网站哪家好百度广告怎么收费标准
  24. 大航母网站建设与服务成人教育培训机构排名
  25. 网站建设和技术支持负面口碑营销案例
  26. vs2005做网站哪些平台可以做推广
  27. 徐州免费模板建站常州谷歌推广
  28. 中山建设网站公司电话营销系统
  29. 个人怎样做旅游网站百度关键词怎么刷上去
  30. 烟台福山建设工程监测网站渠道策略的四种方式