草庐IT

tcp-accept

全部标签

c++ - 如何通过 boost asio 支持 TCP 服务器中的多个连接

我有以下TCP服务器代码:#include#include#include#include#include#include#includeusingboost::asio::ip::tcp;classtcp_connection:publicboost::enable_shared_from_this{public:typedefboost::shared_ptrpointer;staticpointercreate(boost::asio::io_service&io_service){returnpointer(newtcp_connection(io_service));}tcp

sockets - 游戏服务器 TCP 网络套接字 - 公平性

我正在为回合制游戏编写游戏服务器。一个标准是游戏需要对所有玩家尽可能公平。到目前为止它是这样工作的:每个客户端都有一个TCP连接。(如果相关,连接通过WebSockets打开)在运行时,通过epoll持续检查传入的套接字消息。遍历准备好读取套接字的客户端:阅读来自客户的所有消息。更新每条消息的内部游戏状态。将传出消息排队到受影响的客户端。在每个“窗口”结束时(转):遍历客户端并将所有排队的传出消息写入它们的套接字我对公平的关注提出了以下问题:我向客户发送消息的顺序重要吗?在所有套接字上调用write()对我的程序来说只需要几分之一秒,但是如果我对客户端列表进行排序,在底层操作系统或网络

php - $_SERVER ['REMOTE_ADDR' ] php var 是否基于用户 TCP/IP?

是否100%保证$_SERVER['REMOTE_ADDR']变量基于用户TCP/IP,因此始终可靠? 最佳答案 不,没有100%的保证。当用户使用代理互联网地址时,您将获得误报地址。 关于php-$_SERVER['REMOTE_ADDR']phpvar是否基于用户TCP/IP?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22297625/

c++ - 如何通过不同版本的tcp传输不同的对象

我需要序列化不同的对象(到消息)并通过tcp连接发送到服务器(客户端和服务器都是C++)并且我不能使用protobuf(只有boost库可用)。是否已经有算法或示例,或教程如何做到这一点(我需要考虑消息将要更改,新版本具有附加字段)。classMessage{public:chartype;charversion;};classRegister:publicMessage{public://version1ofRegistermessagestringfirst_name;stringlast_name;};classRegister:publicMessage{public://ve

javascript - 在 Chrome 应用程序中无法取消暂停 TCP 服务器的 TCP 连接

我正在尝试在Chrome应用程序中设置TCP服务器。我快完成了。我可以将数据从我的TCP服务器发送到我的客户端。但是我无法处理客户端发送的数据。我发现套接字已暂停。问题是,我似乎无法取消暂停。如果我在JavaScript控制台中尝试这样做:chrome.sockets.tcp.getSockets(function(d){console.log(d);});我得到这个结果:[Object]0:Objectconnected:truelocalAddress:"127.0.0.1"localPort:60519paused:truepeerAddress:"127.0.0.1"peerP

c++ - 如何为服务器处理标记TCP?

我在Ubuntu上用C++实现了一个TCP客户端服务器架构,服务器应该根据接收到的信息类型处理接收到的数据。所以我需要一种标题。我是否需要通过首先向服务器写入类似“THISISTHEHEADER”的字符串来手动执行此操作?执行此操作的常用方法是什么?客户:if(connect(sockfd,(structsockaddr*)&serv_addr,sizeof(serv_addr))服务器:while(1){if((size_recv=recv(sock,chunk,256,0))这似乎是一个标准问题,但我无法在网上找到答案,抱歉。谢谢。 最佳答案

c# - tcp 监听器中的套接字异常

我试图运行这段代码:listener=newTcpListener(IPAddress.Any,port:80);listener.Start();socket=listener.AcceptSocket();但它抛出以下异常:试图以访问权限禁止的方式访问套接字可能是什么原因? 最佳答案 如果您不是管理员,可能会禁止使用低于1024的端口。改用8080之类的端口。另见Whichportcaniuseformysocket? 关于c#-tcp监听器中的套接字异常,我们在StackOverf

c# - TCP 文件传输 - 几个字节错误

我目前正在开发一个C#程序,该程序允许用户通过网络发送文件并在另一端重新组合它。除了在目标位置错放了几个字节之外,它一切正常,使其成为与开始时不完全相同的文件。(例如损坏图像)。编辑:至少当它在我的电脑上时,我注意到可以通过让客户端在开始从流中读取之前等待一秒钟来解决错误,这让我觉得客户端偶尔会到达流的末尾并读取别的东西代替。知道如何以更好的方式解决这个问题,而不是像其他计算机那样等待一秒钟,我不知道这是否可行。我的服务器的代码如下:TcpListenerlistener=newTcpListener(13);listener.Start();FileStreaminputStream

python - 如何检查是否所有数据都通过 Python 中的 TCP 套接字接收到

我正在尝试使用Python作为编程语言从TCP连接(仅限客户端)获取数据,但是,我可以看到所有数据都不是一次接收到的,而是在接收过程中被截断了……我可以在论坛上看到TCP没有以正确的顺序发送数据(有点随机),链接:Pythonsocketreceive-incomingpacketsalwayshaveadifferentsize),我错了吗?我的问题是,是否有办法确保我正确接收到所有数据?在此先感谢您的帮助和回复,PS:我已经增加了socket.recv()的缓冲区大小,但仍然面临同样的问题......而且我只在CentOS下工作编辑:(无法回答我自己的问题:(在这个论坛上还是初学者

linux - tcp 接收窗口更新

我一直在阅读有关tcp协议(protocol)及其接收窗口的latley。我还不明白的是接收方如何知道何时通告新的窗口大小?我只考虑过当接收缓冲区为0时通告一个新的窗口大小,但必须有更多的情况是接收方必须通告一个新的窗口大小,至少我是这么认为的。是否有任何标准阶段可以让接收方知道何时通告新窗口大小?我在下一个链接中检查了tcp协议(protocol)的linux实现:http://man7.org/linux/man-pages/man7/tcp.7.html但我没有发现任何关于如何知道何时公布新窗口大小的信息。谢谢你的帮助,本。 最佳答案