标签: client-server

Linux IPC - 多个编写器,单个读取器

我之前从未在Linux上编写任何IPC C++.

我的问题是我将拥有多个客户端(编写器)和一个服务器(读取器).所有这些都将在同一台机器上.作者将向读者提供数据块(字符串/结构).然后读者将在FIFO中读取它们并对它们执行某些操作.

据我所知,Linux上的IPC类型是管道或套接字/消息队列.

我只是想知道是否有人可以推荐我走下去的路.我倾向于插座,但我没有真正的基础.在踏上这段旅程之前,有什么我应该阅读/理解的吗?

谢谢

c++ linux client-server ipc

1
推荐指数
1
解决办法
4818
查看次数

我应该重新编写游戏服务器,编写转发器还是使用新的插件?

我有一个用python编写的游戏服务器和扭曲的游戏服务器,以及一个python中的旧游戏客户端.我在Javascript中编写了一个新的游戏客户端,它将与websockets连接.我现在面临一个设计决定,

  1. 使用miksago的websocket服务器和纯javascript 在node.js中重写游戏服务器
  2. 使用node.js和miksago的websocket服务器创建一个转发器,它将为旧的python服务器创建一个连接,并为它收到的每个websocket连接提供传统的套接字.
  3. 使用gleicon的websocket服务器进行twisted + python(这实际上看起来是一个非常好的主意,我想我喜欢它,但无论如何我都会发布这个问题.)

编辑:链接和清晰度

javascript python client-server websocket node.js

1
推荐指数
1
解决办法
672
查看次数

Java通过套接字发送数据 - 为什么我需要在String的末尾添加换行符?

因此,虽然我现在知道为什么连接到套接字的Outputstream需要在立即发送数据时刷新,但我仍然不明白为什么我需要在String的末尾添加换行符.

这有效:

// writer is a PrintWriter
writer.println("Hello World!");
Run Code Online (Sandbox Code Playgroud)

这不是:

Writer.print("Hello World!");
writer.flush;
Run Code Online (Sandbox Code Playgroud)

java sockets client-server

1
推荐指数
1
解决办法
1053
查看次数

服务器和客户端是否可以在同一端口上发起通信并发送命令?

我有一个服务器和一个客户端应用程序,我的服务器侦听端口10015和一个发送命令到该端口的客户端.目前两者都在同一台机器上运行,但未来的目标是在不同的机器上运行.我现在正在使用这部分.

我接下来需要做的是让我的服务器向我的客户端发送命令.所以我想我可以在客户端的服务器上重新使用我的代码来监听端口.

但我不确定这是最好的方法.建议?

当我第一次尝试这个时,我首先运行我的客户端应用程序,并将命令发送给自己.我的服务器应用程序无法绑定到端口(我假设您只能在给定端口上侦听一个进程?)

问题1)服务器如何向客户端发送命令?我是否必须创建服务器 - >端口10015上的客户端通信和客户端--->服务器在不同的端口,如10016?

问题2)当我使用send()从客户端 - >服务器发送命令时,接收特定命令的ACK的最佳方法是什么?如果我不需要发送任何数据,是否有办法在服务器收到数据包时自动获得ACK?

我目前正在为我要发送的每个命令执行此操作:

create socket()
conenct() to socket
send() packet
then call recv() to receive any data 
then shutdown() connection
and closesocket() at end
Run Code Online (Sandbox Code Playgroud)

不确定是否有更好的方法吗?当我的应用程序忙时,我希望每秒发送1-10个命令.

谢谢,我是这个网络应用程序的新手,所以任何帮助都非常感谢.

阅读一些评论后编辑:
我正在使用TCP协议.当我说ACK时,我的意思是我只是想从其他应用程序获得一些确认,即该命令已被接收并且没有错误地处理

c windows networking client-server

1
推荐指数
1
解决办法
5817
查看次数

将30个变量从客户端发布到服务器的最佳方法是什么?

嘿,我有大约30个由用户创建和修改的变量(没有一个来自输入,因此提交表单实际上不是一个选项),一旦修改完成JS函数处理变量和配偶将它们发布到控制器然后将其发送到模型.

现在,正如标题中所示,我的问题是我发送它们的最佳方式是什么?

时间和注意力,Ido

javascript php client-server http-post

1
推荐指数
1
解决办法
267
查看次数

握手后立即发送WebSocket消息

我正在WebSocketnode.js中构建一个服务器.当客户端已连接时,我想立即向其发送消息.

但是,当我在握手完成后发送它时,Chrome中出现错误:

Status line contains embedded null
Run Code Online (Sandbox Code Playgroud)

当我setTimeout在握手后100毫秒使用a 发送消息时,它可以工作,但是当使用这种技术使用10毫秒时,它再次无效.

看起来握手和消息在一起发送时会被附加,以防它们之间的时间间隔很小(虽然我不确定,因为我不知道如何查看WebSocketChrome中的原始流量 - 如果有人我喜欢也听到了).

我不想让服务器等待100毫秒,因为它对于客户端来说肯定是显而易见的,而且它看起来像一个肮脏的技巧而不是一个很好的解决方案.

如何在握手后立即发送消息?

sockets client-server websocket node.js handshake

1
推荐指数
1
解决办法
1725
查看次数

C:在同一个内核上,线程程序如何比非线程程序运行得更快?

我有一个服务器和一个客户端程序.服务器程序一直在运行,等待来自客户端的请求.对于服务器响应每个客户端,使用sleep()函数需要5秒.

在多线程版本上,如果我同时调用两个客户端,则每个客户端需要大约5秒才能获得响应.相同的测试给出5秒用于第一客户端和10在非多线程版本的第二客户端.显然有待预期.虽然有一些问题.处理器是单核 Athlon!

当cpu上的核心只有一个时,多线程服务器模块如何比非线程运行得更快?

c performance multithreading client-server pthreads

1
推荐指数
2
解决办法
1222
查看次数

Java套接字 - 需要帮助更好地理解它们

好的,所以我已经阅读了Oracal网站以及本网站上的一些问题.我仍然很难理解有关插座的一些事情,所以我会看看这里是否有人可以花时间向我的慢脑解释它.我正在做的是建立一个聊天客户端和聊天服务器(一举学习摇摆和插座).尽管我已经看过所有的例子,但我仍然不清楚他们是如何工作的.我知道带有输入流的1个套接字和带有输出流的1个套接字是如何工作的,但除此之外我无法理解,因为这是我发现的大多数资源所解释的.以下是我对此的一系列问题.

  1. 如果我希望能够同时处理输入和输出到客户端,我该怎么办?等待,然后如果服务器切换到输入流并获得更改,然后切换回输出流?或者我可以同时运行输入和输出流吗?
  2. 让我们说服务器必须同时处理几个客户端.我必须为每个客户做一个套接字吗?你有什么建议处理这个问题的好办法?
  3. 假设客户端想要更改其当前套接字的IP地址或端口并连接到其他服务器.我会创建一个新的套接字,还是有某种方法来改变当前的套接字?

这是我的主要问题.如果我能理解得那么多,我很确定我可以自己弄清楚我需要的其余部分.

.

java sockets networking client-server

1
推荐指数
1
解决办法
289
查看次数

Java TCP和UDP在一台服务器中回显

我正在尝试构建一个可以回应来自TCP或UDP客户端的输入的服务器.

到目前为止,我能想到的最好的是:

import java.net.*;
import java.io.*;

public class EchoServerMultiProtocol {
    public static void main(String[] args) throws IOException {

        String clientSentence;
        String capitalizedSentence;

        while (true) {
            /*******************************************************************
             * * Handle TCP * *
             *******************************************************************/
            ServerSocket TCP_Socket = new ServerSocket(6789);

            Socket connectionSocket = TCP_Socket.accept();

            BufferedReader inFromClient = new BufferedReader(
                    new InputStreamReader(connectionSocket.getInputStream()));

            DataOutputStream outToClient = new DataOutputStream(
                    connectionSocket.getOutputStream());

            clientSentence = inFromClient.readLine();

            capitalizedSentence = clientSentence.toUpperCase() + '\n';

            outToClient.writeBytes(capitalizedSentence);

            /*******************************************************************
             * * Handle UDP * *
             *******************************************************************/
            DatagramSocket UDP_Socket = new DatagramSocket(9876);

            byte[] receiveData = …
Run Code Online (Sandbox Code Playgroud)

java sockets udp tcp client-server

1
推荐指数
2
解决办法
7876
查看次数

当消息到达服务器而没有在java中读取流时,会发生什么?

如果我有一台服务器和一台客户端,我在两者之间打开了一个套接字:

1.客户端是否有可能有一个printWriter流,以便将内容写入套接字,但服务器在同一时间内不会有一个bufferReader?

  1. 如果1的答案为是,如果该客户端将向服务器发送消息(当前没有读取流),则该消息将发生什么,直到服务器将创建读取流并读取消息?

谢谢

java sockets client client-server server

1
推荐指数
1
解决办法
56
查看次数