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

外贸网站演示推广文案怎么写吸引人

外贸网站演示,推广文案怎么写吸引人,北仑网站建设培训学校,微网站自助建设网络编程 Socket(套接字) socket 位于 网络协议中的 数据传输层、 该层 主要 可以通过 UDP 或者 TCP协议 实现 数据的传输 TCP 协议 VS UDP协议 tcp : 是一个 可靠的 ,面向 连接的协议。 数据在网络传输中 是安全的,不易丢失的。 TCP连接 在建立的时候&…

网络编程 Socket(套接字)

socket 位于 网络协议中的 数据传输层、 该层 主要 可以通过 UDP 或者 TCP协议 实现 数据的传输

TCP 协议 VS UDP协议

  • tcp : 是一个 可靠的 ,面向 连接的协议。 数据在网络传输中 是安全的,不易丢失的。 TCP连接 在建立的时候,需要 经过 3次握手才能成功、 在断开连接的时候,需要经过 4次挥手 才能断开。
  • udp : 是一个 不可靠的连接 、在 数据传输中 可以会出现数据丢失的问题 。传输速度比 TCP 快。

TCP 的三次握手 四次挥手


TCP 服务端代码编写

编写服务端代码的步骤

a) 创建一个 套接字对象

b) 绑定 主机(IP地址) 和 端口, 端口号的取值范围是 0 ~ 65535 ,不建议自己使用 四位数一下的端口

c) 监听 客户端的 连接 和 端口

d) 如果有客户端和服务器建立 链接、 则监听 客户端发送的消息。

f) 服务端 向 客户端 发送 消息 、

g) 断开与客户端的连接。

import socketif __name__ == '__main__':# 1. 创建一个套接字对象#   family :  采用那种模式连接服务器, 推荐使用 AF_INET (采用端口号)#   type :  采用 什么协议 SOCK_STREAM (TCP协议), SOCK_DGRAM (UDP协议)socket_server = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)# 2. 绑定主机和端口号, 主机是一个字符串,端口号必须是一个数字#  主机: a) 可以使用电脑IP地址, b) 可以使用 localhost 或者 127.0.0.1, c) 0.0.0.0 (开放本机IP地址)socket_server.bind(("192.168.17.22", 8888))# 3. 设置 服务器监听 客户端的 连接数socket_server.listen(5)# 4. 监听客户端while True:# 被动等待客户端的连接, accept 会阻塞程序的执行。# 返回 和 客户端的 conn连接通道, addr 是 客户端的IP地址和连接的端口号conn, addr = socket_server.accept()# 5. 接收客户端发送的数据 (字符串流)、需要传递一个参数,指定接收的字节数msg = conn.recv(1024).decode()# 打印消息print(f"{addr}客户端发送的消息是{msg}")# 6. 向客户端发送消息conn.send("hello 客户端".encode())# 7. 断开连接conn.close()

TCP 客户端代码编写

import socket# 1. 创建一个  套接字 对象
sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2. 连接 TCP 服务器
sc.connect(("192.168.17.22", 8888))# 3. 发送消息给 服务器
sc.send("Hello World".encode())# 4. 接收 服务器 给的消息
data = sc.recv(1024).decode()print("服务器发送的消息是", data)# 5. 断开连接
sc.close()

客户端与客户端聊天

  • 服务端代码
import socket
import threading
import re
import jsondef forward_message(conn: socket.socket,  client_mapping: dict):"""转发消息"""while True:# 获取消息message = conn.recv(1024 * 8).decode('utf-8')# 如果这个消息是一个纯数字,说明是客户端第一次向服务器表明身份if re.fullmatch(r"\d+", message):# 将身份信息 和 通道 写入到 字典中client_mapping[message] = connprint(f"客户端{message}上线了...")else:# 如果服务器传入的不是数字、那么一定是一个字典格式的字符串dct = json.loads(message)  # {to:1111, text:'xxx', from:  2222}# 从 client_mapping 中 查找 键为 dct["to"] 的 通道sc: socket.socket = client_mapping.get(dct["to"])# 如果 找不到 sc , 说明 好友没上线if sc is None:# 给 发消息的人 返回 一个 好友不在线的 提醒conn.send("404".encode("utf-8"))else:# 使用 sc 通道、将 message 转发给 好友,这行代码有可能会报错sc.send(message.encode("utf-8"))if __name__ == '__main__':# 创建一个聊天服务器socket_server = socket.socket()# 绑定 主机和端口socket_server.bind(("0.0.0.0", 9999))# 监听客户端连接数量socket_server.listen(5)# 定义一个字典 ,用来 存储所有的客户端信息client_mapping = {}# 编写一个 while 死循环、被动等待所有客户端的连接while True:# 获取 客户端的连接conn, addr = socket_server.accept()# 每来一个客户端,开启一个线程,负责转发该客户端的消息threading.Thread(target=forward_message, args=(conn, client_mapping)).start()
  • 客户端 聊天类 编写
import socket
import threading
import jsonclass QQChat:def __init__(self, account):"""初始化 QQ账号"""self.__qq = account# 初始化 socket客户端socket_client = socket.socket()# 连接 QQ服务器socket_client.connect(("192.168.17.22", 9999))# 将 socket_client 作为 对象的属性self.__socket_client = socket_client# 向服务器发送消息、表明当前是哪一个客户端登录了self.__socket_client.send(account.encode("utf-8"))def chat(self, friend):"""给指定的好友进行聊天"""# 定义一个线程 负责 接收 消息threading.Thread(target=self.__read_message, args=(friend,)).start()# 定义一个线程 负责 发送 消息threading.Thread(target=self.__send_message, args=(friend,)).start()def __read_message(self, friend):"""负责 读取消息"""while True:message = self.__socket_client.recv(1024 * 8).decode("utf-8")# 直接对消息做反序列化data = json.loads(message)if data == 404:print(f"好友{friend}不在线")else:# 一定是一个字典、且字典中包含 谁发的消息# if data["from"] == friend:# 获取好友发送的消息print(f"{friend}:{data['text']}")# else:#     # 如果不是当前聊天的好友#     print("您有一条其他好友发送的消息、已被忽略")def __send_message(self, friend):"""负责发送消息"""while True:# 尝试从键盘获取数据message = input()# 发送消息给 好友data = {"text": message, "to": friend, "from": self.__qq}# 将数据进行 JSON序列化message = json.dumps(data)self.__socket_client.send(message.encode("utf-8"))if __name__ == '__main__':account = input("请输入您的仿QQ账号")# 登录 仿QQ服务器qq_client = client.QQChat(account)friend = input("请输入聊天用户的仿QQ账号")# 选择好友聊天qq_client.chat(friend)
http://www.yidumall.com/news/88030.html

相关文章:

  • 建筑设计方案大全优化工具箱下载
  • 廊坊做网站厂商定制如何做网站建设
  • 住房和城乡建设部网站下载湖南企业网站建设
  • wordpress模版文件潍坊关键词优化排名
  • 青岛市蓝色经济区建设官方网站关键词可以分为哪三类
  • 北京如何做网站今日头条国际新闻
  • 被黑的网站找培训机构的网站
  • 可以做兼职的网站有哪些工作室如何搭建公司网站
  • 个人网站备案都需要什么今日新闻
  • 北京网站建设站建设百度网盘云资源搜索引擎
  • 下瓦房做网站公司三十个知识点带你学党章
  • 网络营销网站建设设计方案投广告哪个平台好
  • 兰州网站seo新闻发布系统
  • 智慧新零售系统廊坊首页霸屏优化
  • 台州做企业网站微信朋友圈广告投放收费标准
  • 用什么网站搭建小说网站最火的网络销售平台
  • 网站安全保障机制如何做网络运营培训课程
  • ps怎么做华为网站界面哪个浏览器看黄页最快夸克浏览器
  • 百度网站建设是什么邯郸网站建设优化
  • 最出名的网站建设公司2020国内搜索引擎排行榜
  • 一流小说网站模板海南百度推广电话
  • 提高网站收录百度站长资源
  • 手机可以做网站服务器吗搜索引擎营销的案例
  • 企业品牌网站建设的关键事项南宁seo外包平台
  • 手机网站 jquery 特效互联网营销培训平台
  • 做网站套路seo工具优化软件
  • 福建公司网站开发福州网站建设方案外包
  • 八大电商平台是哪几家seo的搜索排名影响因素有哪些
  • 做酒的网站名字大全做免费推广的平台
  • 个人政务公开网站建设工作总结手机打开国外网站app