socket TCP发送Float64MultiArray类型的数据

服务器:

# -*- coding: utf-8 -*-
import socket
import math
import time
import sys
#import inference_realsense_hand_classification as inf
import rospy
import roslib
import json
from std_msgs.msg import Int32MultiArray
from std_msgs.msg import String
from std_msgs.msg import Float64MultiArray

import time
import datetime
# dual_data = [0.0,0.0,0.0,0.0,0.0,0.0,0.0]

#
#
#
def socket_server_l(handname):

    dual_data = [0.0,0.0,0.0,0.0,0.0,0.0,0.0]
    dual_data[0] = handname.data[0]
    dual_data[1] = handname.data[1]
    dual_data[2] = handname.data[2]
    dual_data[3] = handname.data[3]
    dual_data[4] = handname.data[4]
    dual_data[5] = handname.data[5]
    dual_data[6] = handname.data[6]
    print("dual_data:",dual_data)
    send_data = json.dumps(dual_data)
    c.send(send_data.encode())



def socket_server_r(msg):
    hand_msg_ = [0.0,0.0,0.0,0.0,0.0,0.0,0.0]
    hand_msg_[0] = msg.data[0]
    hand_msg_[1] = msg.data[1]
    hand_msg_[2] = msg.data[2]
    hand_msg_[3] = msg.data[3]
    hand_msg_[4] = msg.data[4]
    hand_msg_[5] = msg.data[5]
    hand_msg_[6] = msg.data[6]
    #time.sleep(0.1)
    send_msg = json.dumps(hand_msg_)

    c.send(send_msg.encode())




if __name__ == "__main__":
    s = socket.socket()  # 创建 socket 对象

    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

    address = ('192.168.103.13', 12345) #server IP local IP
    readdress = ('192.168.103.9', 12345) #客户client IP guest IP
            # host = socket.gethostname()
            # port =60000
    s.bind(address)  # 绑定端口
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
            # s.bind((host, port))
    print("服务端开启")
    s.listen(5)

    c, addr = s.accept()  # 建立客户端连接font1
    print('connected with',addr)
    rospy.init_node('tcp_dual_hand',anonymous=True)
    rospy.Subscriber('gesture_left',Float64MultiArray, socket_server_l)

    s.close()
    rospy.spin()

客户端:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import roslib
import rospy
#import tf
#import math
#import numpy as np
#from tf import transformations
from std_msgs.msg import Float32
from std_msgs.msg import String
from geometry_msgs.msg import PoseArray, PoseStamped
from std_msgs.msg import Float64MultiArray

import socket
import json



if __name__ == '__main__':
    s = socket.socket()
    IP = "192.168.103.13"
    port = 12345
    s.connect((IP, port))
    buf_pose = [0.0,0.0,0.0,0.0,0.0,0.0,0.0]
    #vision_pose = Float64MultiArray()
    
    #gesture_flag = s.recv(1024).decode()

    rospy.init_node('tcp_dual_server', anonymous=True)
    r_pub = rospy.Publisher('r_msg_send', Float64MultiArray, queue_size=10)
    l_pub = rospy.Publisher('l_msg_send', Float64MultiArray, queue_size=10)
    #gesture_flag = s.recv(1024).decode()
    #rospy.init_node('talker', anonymous=True)

    rate = rospy.Rate(50) # 10hz
    while not rospy.is_shutdown():
        # for data in s.recv(1024):
        #     sting_msg = data.decode()
        buf_msg = s.recv(1024).decode()
        buf_pose = json.loads(buf_msg)

        
        vision_pose = Float64MultiArray(data = buf_pose)
        if vision_pose.data[0] == 1:
            r_pub.publish(vision_pose)
            print ("vision_pose_r:", vision_pose)
        elif vision_pose.data[0] == 2:
            l_pub.publish(vision_pose)
            print ("vision_pose_l:", vision_pose)

        #print ("vision_pose:", vision_pose)
        
        # print(buf_pose)

        rate.sleep()
        #rospy.spin()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值