草庐IT

socket_handle

全部标签

javascript - Net.Socket 实例不会在 NodeJS 中消失

我正在尝试使用Node重新创建硬件串行服务器的功能并且它确实在工作,但是我从已关闭的套接字实例中收到错误。这是该应用程序的简化版本,用于展示我在做什么...varnet=require('net');varSerialPort=require('serialport');varconnectionCounter=0;varport=newSerialPort('/dev/ttyUSB0',function(){varserver=net.createServer();server.on('connection',function(socket){connectionCounter++;

java - socket.setTcpNoDelay(true) 不工作

我在使用tcp套接字发送数据包时遇到问题。我的程序所做的非常简单:首先,客户端套接字连接到服务器套接字。然后服务器套接字向客户端发送5个“hello”,客户端将5个“hello”输出到控制台。客户端和服务器都在我的本地计算机上运行,​​下面是完整代码:服务器:publicclassServer{privatestaticServerSocketserverSocket;publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{serverSocket=newServerSocket(60009);s

python - 来自 RAW SOCKET 数据包嗅探的 TCP 连接状态

这是我的代码:ins=socket.socket(socket.AF_PACKET,socket.SOCK_RAW,3)ins.setsockopt(socket.SOL_SOCKET,socket.SO_RCVBUF,2**30)ins.bind((interface_name,3))whileTrue:fmt="B"*7+"I"*21pkt,sa_ll=self.ins.recvfrom(65535)x=struct.unpack(fmt,ins.getsockopt(socket.IPPROTO_TCP,socket.TCP_INFO,92))print"===>",xprint

sockets - MULE- 如何监听由出站端点创建的客户端套接字

我有一个监听端口的外部TCP服务器,一旦客户端成功建立连接,它将开始推送数据(可以将其视为典型的发布-订阅模型)。只有初始请求将从应用程序向服务器创建套接字连接,不会发送其他请求。服务器在有数据时推送数据。这里的问题是,我使用TCP出站端点与服务器建立了连接,但是我如何连续监听我的出站创建的套接字以接收服务器发布的数据? 最佳答案 将客户端套接字连接共享给监听器的一种方法是在TCP出站连接器中使用自定义MessageDispatcher,例如-你会有一个像这样的调度器工厂类importorg.mule.api.MuleExcepti

node.js - 进程之间的通信 : tcp vs unix sockets, ipc vs nats

我将一个大型应用程序分成几个进程,我希望每个进程能够相互通信。现在它将在同一台服务器上,但稍后同一本地网络上的多台服务器将有多个进程需要相互通信。(表示在一台服务器上提供服务,在同一vpc上的其他服务器上提供服务)所以..我的原始选项是tcp或unixsockets。我知道只有在同一台服务器上时,Unix套接字才有用。但我们正在考虑编写我们自己的实现,在同一服务器上,进程将在unix套接字上进行通信,并且在将使用tcp进行通信的服务器之间进行通信。值得吗?当然tcp套接字比unix套接字慢..因为它不通过网络并且不被tcp相关数据包裹。问题是多少?我找不到tcp和unix套接字之间基准

c++ - window ,C++ : two connections on one server socket?

我不知道这是一个普遍的网络问题还是仅仅是一个编程问题,所以我决定把它贴在这里。尝试制作一个聊天程序,我遇到了以下情况:-我启动服务器程序;服务器在端口22001上创建套接字;服务器等待连接(接受()挂起);-我启动客户端程序;客户端连接无误;客户端发送无误;-服务器接收消息;然后:-我在同一端口上启动另一个客户端(客户端程序的另一个实例,而不停止或断开第一个客户端的连接);-尽管服务器不再处于“accept()pending”状态,但第二个客户端连接没有错误(?!);-第二个客户端发送消息时没有显示任何错误(?!);-服务器不接收来自第二个客户端的消息(?!);实验的最后一步:-我在服

sockets - 如何将有效的 TCP 消息发送到 .NET 框架上的 Telegram 服务器?

所以我想使用.NET框架创建一个Telegram客户端。我读了thispage在Telegram网站上,这是授权过程和客户端与服务器之间交换的消息的示例。那么,我的程序可以生成所描述的40字节消息,该消息必须作为请求发送到服务器,并且服务器应该返回84字节消息。但是我在TCP的Telegram定制方面遇到了困难。我的程序生成40字节的请求并将其提供给配置为:SocketType.Stream和ProtocolType.Tcp的.NETTCP套接字。所以我通过套接字发送这个字节数组,而我从服务器接收到的只是一个00字节数组。我怀疑.NET框架上的TCP实现向我的字节数组添加了一些东西(序

python - python如何区分字符串和二进制消息——TCP Socket发送

我在来自user3132092的stackoverflow(link)中找到了这个示例,用于TCP客户端通过TCP发送“Helloworld”字符串:发送字符串importsockethost=socket.gethostname()port=12345#Thesameportasusedbytheservers=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect((host,port))s.sendall(b'Hello,world')问题是s.sendall()如何像接受二进制一样接受字符串作为参数?“Hellowor

sockets - 哪些协议(protocol)值与 socket() 中的哪些域和类型组合兼容?

我在玩Berkeley套接字,然后我这样做了:#include#include#includeintmain(){autores=socket(AF_INET6,SOCK_STREAM,58);if(res输出是:创建套接字时出错:不支持协议(protocol)。我选择58是因为我想尝试以ICMPIPv6套接字为例,并使用/etc/protocols的内容我得到了这个:ipv6-icmp58IPv6-ICMP#IPv6的ICMP。然后我尝试用0代替上面代码中的58,程序运行良好。所以我的问题是:如果我们有,为什么在socket()调用中需要第三个参数已经在第二个参数中将SOCK_STR

Python 双向 TCP 套接字卡在 socket.recv 上

引用这个例子(和docs):https://pymotw.com/2/socket/tcp.html我正在尝试通过使用TCP的客户端和服务器之间的阻塞套接字实现双向通信。我可以从client->server或server->client获得单向通信,但在尝试接收时套接字仍然被阻塞或“挂起”服务器和客户端上的消息。我正在使用一个简单的算法(recvall),它使用recv,将数据包合并为完整的消息。我知道在发送或读取所有数据之前,套接字会一直被设计阻塞(对吗?),但这不是sendall和recvall负责的吗?为什么在客户端或服务器上禁用recv会“解锁”它并使其工作?最终我做错了什么导