当前位置: 首页 > 知识库问答 >
问题:

如何通过节点将数据发送到Python SSL套接字。js公司

陈瀚玥
2023-03-14

我在节点上运行了一个https服务器。js服务于用python编写的各种客户端应用程序的请求,我希望能够在客户端之间实现对等通信。为了实现这一点,我正在跟踪服务器上的“在线”客户端,然后这些客户端会发送必要的数据,以便对等方可以在彼此之间进行通信。

我的目标:

  1. 客户端应用程序打开三个套接字(一个用于接收来自其他客户端的消息,一个用于向其他客户端发送消息,另一个用于接收来自服务器的消息-我们称之为通知套接字)
host = '127.0.0.1'

listener_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_listener_socket = ssl.wrap_socket(listener_socket, keyfile= pkey_path, 
    certfile= crt_path, cert_reqs= ssl.CERT_NONE, ssl_version=ssl.PROTOCOL_TLSv1_2)
ssl_listener_socket.bind((host, 0))
listener_name = ssl_listener_socket.getsockname()

sender_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sender_socket = ssl.wrap_socket(sender_socket, keyfile= pkey_path, 
    certfile= crt_path, cert_reqs= ssl.CERT_NONE, ssl_version=ssl.PROTOCOL_TLSv1_2)
ssl_sender_socket.bind((host, 0))
sender_name = ssl_sender_socket.getsockname()

notification_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_notification_socket = ssl.wrap_socket(notification_socket, keyfile= pkey_path, 
    certfile= crt_path, cert_reqs= ssl.CERT_NONE, ssl_version=ssl.PROTOCOL_TLSv1_2)
ssl_notification_socket.bind((host, 0))
notification_name = ssl_notification_socket.getsockname()
  1. 客户端将各种套接字的IP和端口发送到服务器

我无法完成任务3。如何在nodejs中创建两个ssl套接字并将数据发送到python套接字?

共有1个答案

罗睿识
2023-03-14

设计说明上,我会做不同的事情。

  1. 为客户端设置套接字服务器
  2. 每个客户端打开与主服务器的套接字连接。为此,请使用websockets或python socketio。我想这就是你想做的
  3. 客户端通过套接字将其信息发送到服务器,服务器将信息发送到其他客户端
  4. 每个客户端都接收有关其他客户端主机的信息。现在可以选择创建到其他服务器的套接字连接。N个主机为N
 类似资料:
  • 我必须对FTP服务器进行编码,而且我在数据传输方面遇到了问题。 我在linux上使用ftp命令来测试它,我目前正在使用,它发送工作目录中的文件/目录列表。一切正常(ftp打印文件列表),除了ftp打印以下警告: 我想删除该警告,我认为ftp需要二进制数据,但我不知道如何通过套接字发送这样的数据,我目前正在使用最基本的方式发送结果:

  • 我不知道如何通过N连接到AWS的ElastiCache Redisode.js.我已经成功地通过node_redisNPM连接到主主机(001),但是我无法使用ioredis的集群能力,因为显然ElastiCache没有实现CLUSTER命令。 我认为必须有另一种方法,但用于节点的AWS SDK只有用于管理ElastiCache的命令,而不是用于实际连接到ElastiCache的命令。 如果不使用

  • 我需要通过Java socket发送一个文本消息到服务器,然后发送一个字节数组,然后是一个字符串等等。到目前为止,我所开发的内容还在工作,但客户端只读取发送的第一个字符串。 从服务器端:我使用发送字节数组,使用发送字符串。 问题是客户机和服务器不同步,我的意思是服务器发送字符串然后字节数组然后字符串,而不等待客户机消耗每个需要的字节。 我的意思是情况不是这样的:

  • 我试着做一个简单的服务器-客户机套接字通信,但服务器似乎无法正常工作。无论何时发送或接收,我都会收到此错误: 非插座上的插座操作:非插座上的插座操作 奇怪的是,这只会在服务器发送时出现。客户似乎还可以:

  • 我有一个数组类型的。我必须在python中通过流/TCP套接字发送它。然后我必须在接收端接收相同的阵列。

  • 问题内容: 我正在学习Java套接字。我正在尝试向Facebook发送HTTPS GET请求,如下所示: 然后,我尝试侦听来自服务器的传入数据,如下所示: 但是我没有从服务器获得任何返回数据。为什么? 问题答案: 两个答案。 您正在尝试与HTTPS服务器通信。这要求您建立一个SSL / TLS通道。这在纯套接字上确实很难>>您必须实现连接协商,密钥链的客户端验证,会话加密/解密等。 一个更合理的方