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

合肥哪家公司做网站上海做网站的多吗

合肥哪家公司做网站,上海做网站的多吗,建设网站如何优化关键词,重庆建设汽车系统股份有限公司Socket Socket (简称 套接字)是进程之间通信一个工具,进程之间想要进行网络通信需要socket。Socket负责进程之间的网络数据传输,好比数据的搬运工。 客户端和服务端 2个进程之间通过Socket进行相互通讯,就必须有服务端和客户端 Socket服务…

Socket

Socket (简称 套接字)是进程之间通信一个工具,进程之间想要进行网络通信需要socket。Socket负责进程之间的网络数据传输,好比数据的搬运工。

在这里插入图片描述

客户端和服务端

2个进程之间通过Socket进行相互通讯,就必须有服务端和客户端

Socket服务端:等待其它进程的连接、可接受发来的消息、可以回复消息

Socket客户端:主动连接服务端、可以发送消息、可以接收回复

在这里插入图片描述

Socket服务端编程

主要分为如下几个步骤:
1、创建socket对象

import socket
socket_server = socket.socket()

2、绑定socket_server到指定IP和地址

socket_server.bind((host, port))

3、服务端开始监听端口

socket_server.listen(backlog)
# backlog为int整数,表示允许的连接数量,超出的会等待,可以不填,不填会自动设置一个合理值

4、接收客户端连接,获得连接对象

conn, address = socket_server.accept()
print(f'接收到客户端连接,连接来自:{address}')
# accept()是阻塞方法,如果没有连接,会卡在当前这一行不向下执行代码
# accept()返回的是一个二元元组,可以使用上述形式,用两个变量接收二元元组的2个元素

5、客户端连接后,通过recv方法,接收客户端发送的消息

while True:data = conn.recv(1024).decode('UTF-8')# recv()的返回值是字节数组(Bytes),可以通过decode使用UTF-8解码为字符串# recv()的传参是buffsize(缓冲区大小),一般设置为1024即可print(f'接收到发送来的数据:{data}')# 6、通过conn(客户端当次连接对象),调用send()可以回复消息reply = input('输入要和客户端回复的消息:')if reply == 'exit':breakconn.send(reply.encode('UTF-8'))
# 可以通过while True无线循环来持续和客户端进行数据交互
# 可以通过判定客户端发来的特殊标记,如exit,来退出无线循环

7、conn(客户端当次连接对象)和socket_server对象调用close()关闭连接

示例:

# socket服务端开发
import socket# 1、创建socket对象
socket_server = socket.socket()# 2、绑定socket_server到指定IP和地址
socket_server.bind(('localhost', 8888))# 3、服务端开始监听端口
socket_server.listen(1)# 4、接收客户端连接,获得连接对象
conn, address = socket_server.accept()
print(f'接收到客户端连接,连接来自:{address}')# 5、客户端连接后,通过recv方法,接收客户端发送的消息
while True:data = conn.recv(1024).decode('UTF-8')# recv()的返回值是字节数组(Bytes),可以通过decode使用UTF-8解码为字符串# recv()的传参是buffsize(缓冲区大小),一般设置为1024即可print(f'接收到发送来的数据:{data}')# 6、通过conn(客户端当次连接对象),调用send()可以回复消息reply = input('输入要和客户端回复的消息:')if reply == 'exit':breakconn.send(reply.encode('UTF-8'))# 7、关闭连接
conn.close()
socket_server.close()

Socket客户端编程

主要分为如下几个步骤:

1、创建socket对象

import socket
socket_server = socket.socket()

2、连接到服务端

socket_client.connect((host, port))

3、发送消息

while True:send_msg = input('输入要发送的消息:')if send_msg == 'exit':# 通过特殊标记来确保可以退出无线循环breaksocket_client.send(send_msg.encode('UTF-8'))	# 消息需要编码为字节数组(UTF-8编码)# 4、接收返回消息recv_data = socket_client.recv(1024).decode('UTF-8')	# 接收到的消息需要通过UTF-8解码为字符串# 1024是缓冲区大小,一般1024即可# recv()是阻塞式的,即不接收到返回,就卡在这里等待print(f'服务端回复消息为:{recv_data}')	

4、关闭连接

socket_client.close()

示例:

# socket客户端开发
import socket# 1、创建socket对象
socket_client = socket.socket()# 2、连接到服务端
socket_client.connect(('localhost', 8888))# 3、发送消息
while True:send_msg = input('输入要发送的消息:')if send_msg == 'exit':# 通过特殊标记来确保可以退出无线循环breaksocket_client.send(send_msg.encode('UTF-8'))  # 消息需要编码为字节数组(UTF-8编码)# 4、接收返回消息recv_data = socket_client.recv(1024).decode('UTF-8')    # 接收到的消息需要通过UTF-8解码为字符串# 1024是缓冲区大小,一般1024即可# recv()是阻塞式的,即不接收到返回,就卡在这里等待print(f'服务端回复消息为:{recv_data}')# 4、关闭连接
socket_client.close()

运行结果

先运行服务端,再运行客户端。此处启动两个cmd窗口进行演示。

在这里插入图片描述

http://www.yayakq.cn/news/905343/

相关文章:

  • 西安网站开发多少钱美丽阿坝网站怎么做
  • 制造动漫网站开发目的新乡网站建设费用
  • 黄岛建网站湖南政务服务网
  • 江苏网站建设平台网络推广培训策划
  • 网站ftp空间自己的公众号
  • 公司做网站还是做app网站开发现状及研究意义
  • 建设公司网站的必要性公众号编辑器官网
  • 门户网站后台管理系统专业装修超市的装修公司
  • 网站界面设计的主要内容wordpress 详细介绍
  • 关于京东商城网站建设的实践报告王野天津音乐广播电台
  • 昆明网站排名优化湖南省百川电力建设有限公司网站
  • 专业 网站设计莱芜招聘
  • 公司网站如何宣传推广唯美个人网站欣赏
  • wordpress文章图片插件新网站做seo
  • 高要网站建设公司网站开发的技术简介
  • 遵义市做网站的地方宣传片制作拍摄公司
  • 盘州电子商务网站建设湖南网站备案注销
  • 简易的在线数据库网站模板平面设计在哪里接单
  • 企业网站建设课程体会上海外贸公司排名榜
  • 国外租车网站模板jquery 做网站
  • 上海做手机网站建设做网站和做app那个简单
  • 谷歌做新媒体运营的网站推广团队
  • 疯狂购网站开发商平面设计创意构图
  • 在网站后台可以修改网页的内容做微信网站公司哪家好
  • 分类信息网站排行推广普通话的方法
  • 阿里云 建网站攻略企业为什么要上市
  • 网站转化低的原因可以自己做直播网站吗
  • 策划电子商务网站建设规划书有没有专门做外包销售的公司
  • 工人找工作哪个网站好万网 网站 流程
  • 网页设计代码文字浮动谷歌seo搜索引擎优化