Python socket TCP网络编程,自制聊天软件

30 篇文章 7 订阅
1 篇文章 0 订阅

使用Python的socket库可以实现网络编程。我们可以自制聊天软件了!

本程序涉及两个代码文件:myserver.py和myclient.py。

都在一个机子上运行,先运行服务器代码,再运行客户端代码,最终的效果如下:

~/Desktop/webconnection$ python3.6 myserver.py 
服务器就绪!
有人连进来了,看看他发来了什么?
他说: Hello! How are you doing!
回他什么呢?Fine. What about you?
已回复,等待下一次接入……
有人连进来了,看看他发来了什么?
他说: I am doing well.
回他什么呢?OK. That sounds nice! Shall we plan a picnic this weekend?
已回复,等待下一次接入……
有人连进来了,看看他发来了什么?
他说: Ah, it's nice! 
回他什么呢?OK. Let's meet this Saturday morning at the park gate.
已回复,等待下一次接入……
有人连进来了,看看他发来了什么?
他说: No problem. See you then!
回他什么呢?See you!
已回复,等待下一次接入……
~/Desktop/webconnection$ python3.6 myclient.py 
请输入信息:Hello! How are you doing!
信息已发送,等待回复……
收到回复: Fine. What about you?
请输入信息:I am doing well.
信息已发送,等待回复……
收到回复: OK. That sounds nice! Shall we plan a picnic this weekend?
请输入信息:Ah, it's nice! 
信息已发送,等待回复……
收到回复: OK. Let's meet this Saturday morning at the park gate.
请输入信息:No problem. See you then!
信息已发送,等待回复……
收到回复: See you!
请输入信息:

两个代码文件分别如下:

#myserver.py

import socket

# 创建socket对象
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

# 绑定监听端口
s.bind(('127.0.0.1',8888))

# 监听
s.listen(1)
print("服务器就绪!")

while True:
    # 接收连接
   sock,addr = s.accept()
   print("有人连进来了,看看他发来了什么?")
   # 接收数据
   buffer = []
   d = sock.recv(1024)
   buffer.append(d)

   # 把字节连接起来
   data = b''.join(buffer)
   print("他说:", data.decode())
   senddata=input("回他什么呢?")
   sock.send(bytes(senddata,encoding="UTF-8"))
   sock.close
   print("已回复,等待下一次接入……")

#myclient.py

  1 # 导入socket这个库                                                          
  2 import socket
  3 
  4 while True:
  5     senddata=input("请输入信息:")
  6     # 创建一个socket对象
  7     s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  8     # 开始建立TCP连接
  9     s.connect(("127.0.0.1",8888))
 10     s.sendall(bytes(senddata,encoding="UTF-8"))
 11     print("信息已发送,等待回复……")
 12     # 接收数据
 13     buffer = []
 14     d = s.recv(1024)
 15     buffer.append(d)
 16 
 17     # 把字节连接起来
 18     data = b''.join(buffer)
 19     print("收到回复:",data.decode())
 20 
 21     # 关闭连接
 22     s.close()  1 # 导入socket这个库                                                          
  2 import socket
  3 
  4 while True:
  5     senddata=input("请输入信息:")
  6     # 创建一个socket对象
  7     s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  8     # 开始建立TCP连接
  9     s.connect(("127.0.0.1",8888))
 10     s.sendall(bytes(senddata,encoding="UTF-8"))
 11     print("信息已发送,等待回复……")
 12     # 接收数据
 13     buffer = []
 14     d = s.recv(1024)
 15     buffer.append(d)
 16 
 17     # 把字节连接起来
 18     data = b''.join(buffer)
 19     print("收到回复:",data.decode())
 20 
 21     # 关闭连接
 22     s.close()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 编写200smart Modbus TCP通讯客户端程序需要以下几个步骤: 1. 创建TCP连接:首先,需要使用200smart智能终端与Modbus TCP服务器之间建立一个TCP连接。可以使用编程语言自带的网络库或第三方库来实现TCP连接的创建和管理。 2. 发送Modbus请求:一旦TCP连接建立成功,客户端可以通过发送Modbus请求来与Modbus TCP服务器进行通信。根据Modbus协议规范,客户端需要构建相应的Modbus请求帧,包括设备地址、功能码以及其他参数。 3. 接收Modbus响应:客户端通过TCP连接接收Modbus服务器返回的响应数据。根据Modbus协议规范,响应数据包括设备地址、功能码、数据长度以及实际的数据。 4. 解析响应数据:客户端需要解析Modbus服务器返回的响应数据,提取需要的信息。根据Modbus协议规范,可以根据不同的功能码和数据类型进行解析。 5. 关闭TCP连接:通信结束后,客户端需要关闭与Modbus TCP服务器的TCP连接,释放资源。 编写200smart Modbus TCP通讯客户端程序需要对Modbus协议有一定的了解,了解Modbus协议的各种功能码和数据类型,并能正确解析响应数据。此外,还需要熟悉TCP网络编程相关的知识,包括TCP连接的创建和管理、数据的发送和接收等。 使用合适的编程语言和相关库,按照以上步骤编写客户端程序即可实现200smart与Modbus TCP服务器之间的通讯。 ### 回答2: 编写200Smart Modbus TCP通讯客户端程序是为了实现与Modbus设备之间的通信。以下是一个简单的程序编写步骤: 1. 导入必要的库:程序需要导入能够实现Modbus TCP通信的相关库文件,例如modbus-tk库。 2. 创建Modbus主机:使用库提供的函数,创建一个Modbus主机对象,通过指定IP地址和端口号来连接与Modbus设备进行通信。 3. 建立连接:使用主机对象的连接函数,与Modbus设备建立连接。如果连接成功,返回一个连接对象。 4. 读取寄存器:使用连接对象的读取函数,指定寄存器的地址和长度,发送读取请求给Modbus设备,并接收响应数据。 5. 写入寄存器:使用连接对象的写入函数,指定寄存器的地址和值,发送写入请求给Modbus设备,并接收响应数据。 6. 关闭连接:使用连接对象的关闭函数,关闭与Modbus设备的连接。 7. 处理异常:在程序中添加异常处理机制,以提高程序的稳定性并防止程序崩溃。 8. 其他功能:根据需要,可能需要添加其他功能,如批量读写寄存器、订阅通知等。 以上是一个基本的200Smart Modbus TCP通讯客户端程序的编写步骤。根据实际需求,可能还需要进行更详细的编码和配置,如设置超时时间、处理不同类型的寄存器等。 ### 回答3: 编写200smart的Modbus TCP通讯客户端程序需要以下几个步骤: 1. 导入相关库:首先,需要导入相应的库来实现Modbus通讯功能,例如Python的pymodbus库。可以使用pip安装该库。 2. 创建Modbus TCP客户端对象:使用pymodbus库中的ModbusClient方法来创建一个Modbus TCP的客户端对象。需要指定要连接的服务器的IP地址和端口号。 3. 连接到Modbus服务器:使用客户端对象的connect()方法来连接到Modbus服务器。可以对连接是否成功进行判断,并作出处理。 4. 发送Modbus请求:通过调用相关方法来发送Modbus请求,例如读取寄存器的值或者写入寄存器的值。在发送请求之前,需要指定请求的目标设备ID,寄存器地址和长度等参数。 5. 处理Modbus响应:获取Modbus服务器返回的响应,并进行处理。可以判断响应的状态码是否为成功,如果出现错误可以进行相应的处理。 6. 断开与Modbus服务器的连接:使用客户端对象的close()方法来断开与Modbus服务器的连接,释放资源。 7. 错误处理:在程序中添加相应的错误处理机制,例如捕获异常,并输出相应的错误信息。 需要注意的是,具体编写200smart的Modbus TCP通讯客户端程序还需要根据具体的业务需求来进行相关的配置和处理,例如指定寄存器的类型和长度,定义报文格式等。同时,还可以根据需要添加其他功能,例如定时读写数据或者与其他设备进行通讯等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值