为了学习,我创建了两个简单的C程序来模拟以下套接字场景:循环中的客户机向服务器发送256个字节(带有send标志的MSG_DONTWAIT函数),但服务器不读取数据(recv函数)。为了简单起见,服务器不向客户端发送任何其他数据。我想测试send方法何时会返回一个错误。我使用linux ss -nmtp命令查看套接字缓冲区发生了什么。首先,服务器接收缓冲区(Recv-Q)和skmem r参数正在增长:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 768 0
我想在我的websocket服务器上做一些压力测试,在我的浏览器(chrome)中运行这个javascript示例:
function create_ws() {
var ws=new WebSocket("ws://127.0.0.1/");
ws.onopen=function(evt){
var binary = new Uint8Array(2);
binary[0]=1;
binary[1]=2;
ws.send(binary.buffer);
};
我计划在Linux上用C语言实现一个特殊用途的TCP服务器。在做了一些研究之后,看起来有几种方法可以做到这一点,包括单线程,每个连接一个线程,等等。对于套接字,有像datagram vs stream和阻塞vs非阻塞这样的选项。
大部分通信将如下所示:
Client: request id [request info]
Server: status id [response info]
或
Client: request id [request info]
Server: status id [response info]
Client: additional request id [requ