草庐IT

Flask-Sockets

全部标签

sockets - 用一个线程维护多个套接字连接

我看到的许多关于套接字通信的教程似乎每个套接字使用1个线程。但是在用于在线游戏的服务器上,您可能有10k个并发用户-10k个线程可能不是一个好主意。我遇到了一个工具(SmartFox),它声称使用单个线程来监视所有套接字连接,可能有数千个。这个应用程序恰好是用Java编写的,但我认为C++或C#也可以做同样的事情...您将如何实现这一点? 最佳答案 TheC10Kproblem谈到这个问题。 关于sockets-用一个线程维护多个套接字连接,我们在StackOverflow上找到一个类似

sockets - 在 Azure 中动态打开端口,负载均衡器是否足够智能以路由到正确的端口?

据我所知,我只能在Azure应用程序中打开5个端点,但如果我动态打开这些端口会怎样?示例:我有一个WorkerRole用,然后第一个实例在我在“.csdef”文件中声明的5个可用端点之一中打开一个套接字,当连接转到“myapp.cloudapp.net”时......连接是否有可能转到没有监听套接字的第二种情况?我想是的,因为负载均衡器正在使用循环调度,它不关心并且它可以将连接转发到第二个,但我可能错了。问候。 最佳答案 你猜对了。绝对没有办法将流量定向到特定实例,并且负载均衡器不知道您的实例是否正在运行监听器。实现这一目标的唯一方

c# - 无法通过 TCP/Sockets .net 退出具有多个缓冲区传输的循环

我正在使用.Net(System.Net.Sockets)通过TCP/套接字传输数据我在客户端使用这段代码:tc.SendBufferSize=4096DimfsAsNewFileStream(wfile,FileMode.Open,FileAccess.Read)DimrijnAsNewRijndaelManagedDimcsAsNewCryptoStream(fs,rijn.CreateEncryptor(CreateKey(key),CreateIV(IV)),CryptoStreamMode.Read)DimbytesToSend(tc.SendBufferSize)AsByt

sockets - 如何告诉 TCP 服务器特定消息已经结束?

TCP客户端逐字节发送数据。那么,如何告诉服务器这条消息已经结束,新的消息现在开始呢?一种方法是修复将作为书签发送的特殊字符,但该字符也可能是消息的一部分,从而导致混淆。还有其他最佳出路吗? 最佳答案 如果消息是二进制的,则不可能使用特殊字符进行定界编码。标签长度值(TLV)编码最适合这种情况。例如+--------+----------+----------------+|Tag|Length|Content||0x0001|0x000C|"HELLO,WORLD"|+--------+----------+-----------

sockets - Nodejs TCP套接字,结束时不包含remoteAddress信息

我正在构建一个简单的回显服务器,目的是学习有关使用node.js构建tcp服务的基础知识,并找出可用的信息。当我创建服务器时,如下所示,我可以访问有关incomingSocket的信息,例如远程地址。为什么我无法访问有关关闭套接字的信息?以下是我的代码;我的评论表示我收到的输出。varnet=require('net');varserver=net.createServer(function(incomingSocket){//'connection'listenerconsole.log('Connectionfrom'+incomingSocket.remoteAddress+':

sockets - TCP套接字的传输时间

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。更详细地描述您的问题或includeaminimalexample在问题本身。关闭8年前。Improvethisquestion我想知道TCP套接字的传输时间是否可配置。我正在发送一个有效负载大小为19字节的TCP数据包,传输时间似乎约为1秒。这可以被打倒,还是必须接受它是什么?

sockets - 是否可以通过一个 TCP 连接建立两个 SOCKSv4a session 连接?

我正在尝试从到SOCKSv4a代理服务器的单个TCP连接创建多个隧道,以防止关闭和重新打开一堆到SOCKS代理的套接字。类似于“连接:保持事件”。我怎样才能做到这一点?协议(protocol)允许吗? 最佳答案 不,这不被任何版本的SOCKS支持(也不被HTTP/1.1CONNECT方法支持——keep-alive被CONNECT忽略)。一旦隧道建立,它就是原始数据的直接传递,直到客户端或服务器断开连接。您需要为每个与服务器的新连接打开一个单独的客户端代理连接。 关于sockets-是否

sockets - "Socket": Why client address and port are not explicitly speicified when connecting to a server?

我从here中阅读了一些套接字编程示例代码.我突然想到了一个问题。构造一个TCP套接字连接需要一个4元组:不过好像只有在客户端和服务器代码中明确指定。还有这个serverport仅用于监听,而不是服务器实际用于通信的。那么谁来决定?为什么不由客户端代码的程序员明确表示?添加1更正,上面加粗的部分好像不对。服务器端口不要改变。引用:DoestheportchangewhenaTCPconnectionisacceptedbyaserver? 最佳答案 这些客户端端口称为临时端口,这里解释得很好:https://en.wikipedia

sockets - Channel.isActive() 如何在 netty 中工作?

我正在使用netty4.x,我终于找到它调用publicbooleanisActive(){SocketChannelch=javaChannel();returnch.isOpen()&&ch.isConnected();}我可以用它来检查客户端和服务器之间的连接是否可读/可写吗?如果答案是肯定的,那么我相信isActiveusesth。像心跳一样检查客户端的状态。但是当我抓取tcp数据包时,我找不到任何数据包通过wireshark过滤器tcp.port==12093(这是我的服务器端口)作为心跳工作。任何建议都是有帮助的。 最佳答案

sockets - 使用 80、443 之类的 TCP 的套接字是否令人难过?

假设套接字是某个IP上端口80上的TCP欢迎套接字。它在听。这意味着,TCP套接字已创建,但TCP套接字还必须具有目标IP和端口。当有人尝试连接并且欢迎套接字接受连接时,将返回一个新的TCP套接字,它具有不同的源端口号(不是80)并用于发送数据。我说的对吗?众所周知的套接字是否因为它们从不发送实际信息而“令人难过”?如果没有目标IP和端口,如何欢迎套接字TCP?提前感谢您的精彩回答 最佳答案 套接字由五部分信息标识:客户端地址和端口、服务器地址和端口以及协议(protocol)。如果你在监听端口80的套接字上接受一个连接,你将得到一