Tag: websocket

Websocket连接过早地关闭连接

所以,我正在尝试构建一个充当Websockets Server的C应用程序。这里有很多相关的问题,但它们似乎都没有能够帮助解决这个问题。 该程序能够初始建立连接,成功完成websocket的握手,但是,似乎无法保持连接打开。 在客户端,我收到错误 WebSocket.js:7605未捕获错误:尝试在未打开或关闭的WebSocket上发送消息,位于_8b2.window.WebSocket._8d2.send(WebSocket.js:7605)at(index):34 每当我尝试在客户端的websocket连接上使用send()函数时。 它也给了我错误 与’ws://127.0.0.1:5959 /?.kl = Y’的WebSocket连接失败:WebSocket在建立连接之前关闭。 这是服务器的源代码: int new_socket; int activity; int i; int sd; int max_sd; int bytes_read; fd_set readfds; int master_socket; noPollConn* new_conn; /*Create no poll context*/ noPollCtx* ctx = nopoll_ctx_new(); noPollConn* conn; char buffer[3000]; /*Create a connection listener at 127.0.0.1 (loopback) on port 5959*/ noPollConn * listener […]

我可以使用单个websocket服务器同时打开2个端口

我是websocket编程的新手。 目前我正在使用一个简单的websocket服务器,使用c,可以响应websocket客户端。 我设法在一个端口上使用1个客户端和1个服务器。 我想知道我是否可以打开2个端口,因此不同的客户端可以连接到不同的端口。 #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { int listenfd = 0, connfd = 0; struct sockaddr_in serv_addr; char sendBuff[1025]; listenfd = socket(AF_INET, SOCK_STREAM, 0); memset(&serv_addr, ‘0’, sizeof(serv_addr)); memset(sendBuff, ‘0’, sizeof(sendBuff)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY ); serv_addr.sin_port = htons(8000); bind(listenfd, (struct […]

在C和python中实现sendall()和recvall()

我目前正在尝试在用C编写的服务器中实现sendall()函数,并在用python编写的相应客户端上实现recvall()函数。 我可以让服务器和客户端一起工作,因为它们都是用同一种语言编写的(即在c或两者都是在python中),但是我不能让它与c中的服务器和客户端一起工作python。 目前,我想从c服务器向python客户端发送一个简单的字符串。 C中的服务器sendall()实现如下(从Beej的指南中引用): int sendall(int socket, char * buf, int *len){ int total = 0; // how many bytes we’ve sent int bytesleft = *len; // how many we have left to send int n; while(total < *len) { n = send(socket, buf + total, bytesleft, 0); if (n == -1) { break; } […]

建立Meteor Server和C app之间的DDP连接

我正在开发一个带有两个客户端的Meteor应用程序,一个是JavaScript,另一个是C.我实际上是尝试使用websocket将我的C应用程序连接到服务器。 我正在使用库nopoll作为websocket( http://www.aspl.es/nopoll/html/index.html )和jansson作为JSON序列化( http://www.digip.org/jansson/ )。 我阅读了DDP规范( https://github.com/meteor/meteor/blob/devel/packages/ddp/DDP.md )和这个简短(但很好)的解释( https://meteorhacks.com/introduction-to -ddp.html )。 这里的代码是websocket初始化 int main(int ac, char** av) { // Create noPoll context noPollCtx* ctx = nopoll_ctx_new(); if (! ctx) { puts(“Error creating nopoll context”); return EXIT_FAILURE; } puts(“Context created”); // Create connection noPollConn* conn = nopoll_conn_new(ctx, “localhost”, “3000”, NULL, “/websocket”, NULL, NULL); if (! […]

如何通过libwebsocket发送异步数据?

我使用warmcat的libwebsocket C库作为一个小的websocket服务器。 我已经将示例启动并运行,并且可以发送数据以响应从websocket接收数据(例如回显发送的反向字节)。 但是,我还没有弄清楚如何在没有libwebsocket回调函数的情况下从服务器异步发送数据。 我需要将wsi指针传递给libwebsocket_write(),但是除了在回调中之外,我不知道如何获取指针。 我已经读过libwebsocket不是线程安全的,因为我自己的经验似乎证实了。 在libwebsockets.c:line2483中,我读到“定期调用协议回调函数以允许异步传输。” 这正是我想要的,但我没有在我自己的代码中发现这种情况,也没有找到任何方法来“打开它”。 关于如何异步写入我正在服务的websocket的建议? libwebsocket的代码: http ://git.warmcat.com/cgi-bin/cgit/libwebsockets/ 使用示例: http : //martinsikora.com/libwebsockets-simple-websocket-server

socket.io的C客户端

我正在尝试建立从C中的程序到具有socket.io的节点服务器的连接。 我能弄清楚的唯一方法是从C程序向节点服务器发出http请求,所以我有一点点覆盖。 现在我需要从C程序接收节点服务器的一些信息。 是否有任何c的客户端库可以让我这样做? 如果它不存在,你可以给我一些想法让它起作用吗? 非常感谢你!

如何将WebSockets合并到Cocoa应用程序中

我正在开发一个涉及聊天元素的Cocoa应用程序。 我考虑过的一种方法是使用Websockets来处理客户端 – 服务器通信。 这将是特别理想的,因为聊天也将显示在网站上,并且使用Websockets可以使实现非常简单。 那么:是否可以使用WebView元素,并在其中使用Websockets? (我知道Safari还不支持Websockets,所以我想这不可能吗?) 如果失败了,是否有任何用于C,Objective C或我可以在我的应用程序中成功嵌入的任何其他语言的Websocket客户端库? 建议欢迎。