草庐IT

tcp_proxy

全部标签

bash - 在 Bash 的/dev/tcp 中使用 SSL

我刚刚用bash编写了一个IRC机器人(我知道,我知道)。它完成了我需要的一切(SASL身份验证、解析链接等),除了它不通过SSL连接。经过大量谷歌搜索和IRC上的大量麻烦之后,我还没有找到一种方法让/dev/tcp使用SSL。这是我当前的代码:#!/bin/bashif[["$1"=="-debug"]];thenset-xfiirc_send(){printf">>>%s\n""$1"printf"%s\r\n""$1">&3&}sasl_successful(){whileread-ru3line;doprintf"%s\n""$line"read-rlocationnumeri

c++ - 如何加速写入tcp套接字?

我在网络服务器上工作,它返回微小的JSON(大约200字节)。业务逻辑大约花费2-3微秒,但写入套接字大约花费25微秒。我对单个缓冲区使用write,对多个缓冲区使用writev。我已经通过启用TCP_NODELAY禁用了Nagle的算法。还有其他加速写作的方法吗?监听套接字选项:......if(listen(sfd,SOMAXCONN)==-1){...}intval=true;if(setsockopt(sfd,IPPROTO_TCP,TCP_NODELAY,&val,sizeof(val))==-1){...}if(setsockopt(sfd,IPPROTO_TCP,TCP_

tcp - 当客户端连接到 tokio-proto 服务器时如何显示欢迎消息/横幅?

SMTP服务器应在建立连接(220服务就绪)时显示欢迎消息,这是客户端开始发送命令的信号。这似乎与tokio-proto的请求-响应范式相冲突。我可以想象协议(protocol)可以完全颠倒,例如服务器发送请求和客户端响应(不推荐使用TURN),但目前我只关心连接时的欢迎消息,也就是横幅。之后,客户端请求=>服务器响应将得到支持。我一直在想在哪里Hook,但bind_server、bind_transport对我来说super神秘。我需要实现传输吗?我在编解码器的decode方法中有这个。问题是decode方法不会被调用,除非有数据可用于解码哪种类型有意义。我希望有一些连接初始化方法可

c# - 如何使用 TcpListener/Client 通过 tcp 发送文件? SocketException问题

我正在开发一个简单的应用程序,使用TCPListener和TCPClient类通过TCP发送文件。这是发送文件的代码。Stop是一个volatilebool值,它有助于随时停止进程,并且WRITE_BUFFER_SIZE可能会在运行时更改(另一个volatile)while(remaining>0&&!stop){DateTimecurrent=DateTime.Now;intbufferSize=WRITTE_BUFFER_SIZE;buffer=newbyte[bufferSize];intreaded=fileStream.Read(buffer,0,bufferSize);st

TCP 在 UDP 上引起的数据包丢失和学士论文引用

我目前正在撰写计算机科学与工程专业的学士论文,我们正在使用OpenGL使用C++创建一款赛车游戏。在报告中,我比较了TCP和UDP的使用,我发现了source,声称多个TCP连接会导致UDP连接中的数据包丢失。我什至得到了一个很好的reference问题在于它已有13年的历史,但我还没有找到任何迹象表明任何协议(protocol)都已修改以解决此问题。我也找不到任何更新的、进行类似调查的论文或文章因此,我的问题是协议(protocol)是否有任何可能相关的更改和/或我是否应该忘记在论文报告中使用这个旧引用。 最佳答案 阅读文章中的重

sockets - 使用 Java 发送零数据 TCP/IP 数据包

我的目标是发送一个数据字段为空的TCP数据包,以便测试与远程机器的套接字。我正在使用OutputStream类的write(byte[]b)方法。我的尝试:outClient=ClientSocket.getOutputStream();outClient.write(("").getBytes());这样做,数据包永远不会出现在网络上。如果将""替换为""或任何非零字符串,它会正常工作。我尝试了jpcap,它与我一起工作,但没有达到我的目标。我想扩展OutputStream类,并实现我自己的OutputStream.write方法。但这超出了我的知识范围。如果有人已经做过这样的事情,

C++ 多线程 TCP 服务器问题

我正在编写一个简单的TCP服务器。我的模型是服务器在主线程中接受客户端连接并将它们移交给另一个线程,以便服务器可以再次监听连接。我使用的代码的相关部分发布在下面:接受连接:voidstartServer(){intserverSideSocket=0;intclientSideSocket=0;serverSideSocket=socket(AF_INET,SOCK_STREAM,0);if(serverSideSocketcreate_thread(boost::bind(process,clientSideSocket,this));}}这里,processingThreadGro

api - 在 node.js 中管理基于命令的 TCP 套接字 API 上的连接

我基于expresss.js构建了一个RESTfulAPI,它使用JSON通过TCP套接字与远程服务器通信。请求的URL被转换为适当的JSON消息,一个新的TCP套接字被打开并发送消息。然后,当收到来自同一连接的消息时,会触发一个事件,评估JSON回复并返回一条新的JSON消息作为GET请求的结果。可能的路径:异步(当前正在使用)——为每个服务器打开一个连接要求。Sync-创建一个包含所有请求的队列并等待响应,阻塞代码。Track-一次发送所有请求并异步接收答案。在请求上使用跟踪器ID将每个请求与其答案相关联。最好的方向是什么?有什么通用的模式可以解决这类应用吗?

Windows TCP 套接字接收延迟

外部Controller每30毫秒通过TCP/IP套接字发送120字节的消息。应用程序通过标准的tcp/ip套接字接收函数接收此消息。它在Linux和OSX下完美运行(recv每30毫秒返回120字节的消息)。在Windows下,recv大约每1秒返回~3500字节缓冲区。其余时间返回0。Windows下的Wireshark显示消息确实每30毫秒发送一次。如何使windowstcpsocket正常工作(不延迟)?PS:我已经玩过TCP_NODELAY和TcpAckFrequency。Wireshark显示一切正常。所以我认为这是一些Windows优化,应该关闭。读书--intWMast

networking - TCP header 选项 : SACK-permitted (Selective Acknowledgments) negotiation

我正在做一个研究项目,需要拆分tcp连接。所以我有一些特殊的问题,这些问题可能会在我的发展中发生。问题在于理解TCPSACK允许的协商。我阅读了RFC,但在那里找不到答案。对于两个tcp程序之间的3次tcp握手:A和B。如果A向B发送TCPSYN并允许SACK,B肯定会响应一个SACK允许的SYN/ACK数据包吗?如果B在没有允许SACK的情况下用TCPSYN/ACK回复,这是否意味着1)SACK-permited只在A上启用。A可以选择性的确认来自A的tcp包,但是A不能选择性的确认来自B的tcp包。或2)A和B都没有启用SACK-permited如果A在没有允许SACK的情况下向B