【Python基础】一个简单的TCP通信程序

000

🌈欢迎来到Python专栏
🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生
🌏IP坐标:湖北武汉
🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)
🍇 博客介绍:通过分享学习过程,加深知识点的掌握,也希望通过平台能认识更多同僚,如果觉得文章有帮助,请您动动发财手点点赞,本人水平有限,有不足之处欢迎大家扶正~
🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~

  • 服务器代码
import socket

def tcp_server():
    # SOCK_STREAM代表tcp的socket
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    addr=('服务器ip(可以是本地ip)',2000)
    s.bind(addr) #绑定,端口并没有激活
    s.listen(128) #listen时,端口才激活
    new_client,client_addr=s.accept()
    print(client_addr)
    # 接下来就可以进行send,recv操作
    new_client.send('helloworld'.encode('utf8'))
    data=new_client.recv(100)
    print(data.decode('utf8'))
    new_client.close()
    s.close()



if __name__ == '__main__':
    tcp_server()
  • 客户端代码
 
import socket
def tcp_client():
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    dest_addr = ('服务器ip', 2000)
    client.connect(dest_addr)
    # 先接
    data=client.recv(5)
    print(data.decode('utf8'))
    data=client.recv(5)
    print(data.decode('utf8'))
    client.send('我是男生abc123'.encode('utf8'))
    client.close()

if __name__ == '__main__':
    tcp_client()

相关知识点在本人的计算机网络专栏有相关介绍 这里不多赘述~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Python 编写一个 MODBUS TCP 从站(Slave)程序,你可以使用第三方库 pymodbus。以下是一个简单的示例代码: ```python from pymodbus.server.sync import StartTcpServer from pymodbus.datastore import ModbusSequentialDataBlock from pymodbus.datastore import ModbusSlaveContext, ModbusServerContext # 定义 MODBUS 从站数据 block = ModbusSequentialDataBlock(0, [0] * 100) store = ModbusSlaveContext(di=block, co=block, hr=block, ir=block) context = ModbusServerContext(slaves=store, single=True) # 创建 MODBUS TCP 从站服务器 server = StartTcpServer(context, address=("0.0.0.0", 502)) # 启动服务器 if __name__ == "__main__": try: print("MODBUS TCP Slave is running...") server.serve_forever() except KeyboardInterrupt: print("MODBUS TCP Slave stopped.") ``` 在这个示例中,我们首先导入了 `pymodbus` 库的相关模块,然后定义了一个 ModbusSequentialDataBlock 对象来存储从站数据。`di` 代表离散输入寄存器,`co` 代表线圈,`hr` 代表保持寄存器,`ir` 代表输入寄存器。在这里,我们使用同一个数据块来模拟这些寄存器。 接下来,我们创建了一个 ModbusSlaveContext 对象,并将之前定义的数据块添加到其中。然后,我们创建了一个 ModbusServerContext 对象,将从站数据存储对象添加到其中。 最后,我们使用 `StartTcpServer` 函数创建一个 MODBUS TCP 从站服务器,并指定服务器的地址和端口号。然后,我们调用 `server.serve_forever()` 启动服务器,使其一直运行,直到接收到键盘中断信号。 你可以根据你的实际需求修改数据块的大小和内容,并根据需要进行其他设置。正常情况下,你需要根据你的设备和通信要求进行适当的配置。 希望这个示例能够帮助你开始编写 MODBUS TCP 从站程序!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值