标签: client-server

如何编写服务器/客户端视频和音频流应用程序?

我必须创建一个客户端/服务器系统来流式传输视频和音频.这很简单.喜欢youtube风格.服务器应首先参加提供媒体列表的客户端,并等待每个客户端的选择以开始流式传输媒体.直到创建一个套接字并显示一个简单的列表我就在它上面;)但我不知道我可以使用哪个类来传输.这个例子基本上是youtube风格.如何开始流式传输,客户端如何暂停再现,怎么样?我知道如何流式传输文字,但视频呢?你知道任何教程页吗?它与这个简单的服务器客户端示例有很大不同?

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

public class ThreadedEchoServer {

   public static void main(String[] args) {
      try {
         int i = 1;
         ServerSocket s = new ServerSocket(8189);

         while(true) {
            Runnable r = new ThreadedEchoHandler(incoming, i);
            Thread t = new Thread(r);
            t.start();
            i++;
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

class ThreadedEchoHandler implements Runnable {
   private Socket incoming;
   private int counter;

   public ThreadedEchoHandler(Socket i, int c) {
      incoming = i;
      counter = c;
   }

   public void run() …
Run Code Online (Sandbox Code Playgroud)

java sockets streaming multithreading client-server

11
推荐指数
1
解决办法
6万
查看次数

设置支持与客户端进行异步通信的R-Server

简而言之

是否可以设置一个可以异步方式处理/分派多个客户端请求的R-Server ?

我想我正在寻找某种套接字通信.或者让R与其他应用程序交谈更有效率吗?

现在,我真的不关心,如果通信是通过"纯香草socket通讯"(类似最终实现socketConnection(port=6011, server=TRUE)对服务器的过程中,socketConnection(host=Sys.info()["nodename"], port=6011)对于客户端进程(ES)结合writeLines()readLines()JSON的字符字符串)或更多的东西"高级"喜欢使用基于HTTP请求的Web服务器设施.

更多细节

第一个:关于那些细节信息学细节的背景都是"DIY",所以套接字通信,主服务器概念异步通信等细节对我来说都是新的.所以请不要咬;-)

我希望我的一个进程充当R-Server.AFAIU,R不是在"多线程范式"下设计的.所以我想知道如何让我的R-Server以异步方式处理并发客户端请求(当前来自通过JSON样式字符串发送其请求/对象的第三方软件).

用简单的英语我想告诉我的服务器进程是这样​​的:

在端口xy收到传入消息后,执行您需要执行的操作,但立即切换回"响应模式"以便能够处理下一个客户端请求,并始终注意每个客户端获取与其逻辑链接的结果各自的要求.

家庭作业

我从一些非常基本的东西开始:

con <- socketConnection(port=as.numeric(port), server=TRUE)
Run Code Online (Sandbox Code Playgroud)

这将使我的R进程成为服务器.它是一种享受,但由于它con是我的"唯一"连接对象,服务器注定要按顺序处理每个客户端请求:

从连接中读取输入,进行一些计算,将输出写回连接,然后才处理下一个客户端请求.

我想过让我的服务器进程立即将需要完成的所有事情分发给辅助Rscript进程,以便"主"服务器进程准备好接受下一个请求.但是,由于在一天结束时结果需要con再次通过(在我的"主"服务器进程中),我认为这并没有真正给我任何意义,因为服务器进程仍然需要等到辅助进程完成在接受下一个请求之前.或者,我可以告诉这个辅助过程"直接"以某种方式向客户请求报告吗?

虽然我目前的目标不是将我的服务器变成一个成熟的Web服务器,但这些复杂的Web服务器方法对我来说乍一看似乎非常有希望:

是否可以与其中一个进行异步客户端通信?

任何任何指针将大大赞赏!


编辑

一旦问题符合条件,我将提供300个积分的赏金.

sockets webserver client-server r

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

具有服务器和客户端的项目的Git存储库设置

我是一个正在启动的项目的一部分,它将具有客户端可执行文件和服务器可执行文件.我们正在使用git帮助我们的团队更新代码,这是我们许多人第一次使用git(这个项目是针对一个类).我开始为我的项目设置git存储库,但我不确定具有客户端和服务器代码的最佳设计是什么.

那么问题是,如何设置存储库?除了网络之外,两者之间不会有很多代码共享.然而,我们看到两者之间的网络是最重要的方面,并希望保持两者使用相同的网络概念.我已经对顶部做了一些研究,我看到了可能性,两个独立的存储库,我们必须确保两个代码彼此兼容,或者我们是否使用单个存储库?

对于这个相当新的方法我很抱歉,我读过"Git Pro",但是在使用git进行与多人合作的项目方面还没有太多的经验.

git client-server

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

我的服务器应该同时使用TCP和UDP吗?

我正在编写客户端/服务器应用程序,但实际上找不到符合我需要的指南.在我开始之前,我自己做这件事会让我遇到许多设计缺陷.例如,服务器应该每秒多次更新每个客户端的状态.我假设我不能单独更新每个客户端,但UDP广播应该解决这个问题.但是我仍然需要一个TCP通道来与每个客户端可靠地通信,例如:聊天消息,用户输入等.

研究这个主题似乎服务器可以同时使用这两种协议 - 但只能是可能的(不是敏感的).没有人建议采用这种方法,事实上我从这篇文章中得知,使用这两种方法相当糟糕.


现在我对如何处理服务器中的数据非常困惑.除非我完全误解了丢包的内容,否则我想保证导致'server-request-packets'的用户输入不会丢失.关于保证使用UDP传递的所有关于SO的答案都说使用TCP.更令人沮丧的是,我能想象的每个服务器/客户端程序至少需要保证传递的一些消息(例如'disconnect'消息?).

我应该使用UDP,TCP,还是我只是在想这个问题?

java udp tcp client-server broadcast

11
推荐指数
2
解决办法
1399
查看次数

在C/C++中实现跨平台,多线程服务器的最佳方法是什么?

我与之合作的开发团队的一部分面临着编写服务器以与我们的产品集成的挑战.我们有一些提供C SDK的低级传感器设备,我们希望通过网络共享它们以供收集数据的人使用.听起来很简单吧?有人会将传感器设备连接到建筑物的一部分中的机器并运行我们的服务器,从而与网络的其余部分共享设备.然后,客户端将通过我们的应用程序连接到该服务器,并从设备收集传感器读数.

我创建了一个简单的,与语言无关的网络协议,以及Java中的参考实现.问题是创建一个实现,它将与我们的设备一起使用,这些设备仅提供用C编写的SDK.我们正在考虑执行以下操作:

  1. 创建轮询线程,收集并存储每个连接设备的最新读数.
  2. 使用多线程服务器将每个传入连接分离到工作线程.
  3. 当工作线程收到传感器读取请求时,轮询线程收集的最新值将被发送回客户端.

这是很多线程,特别是在C中.因此,要审查,一般要求是:

  • 在Windows XP/Vista,Linux和OS X计算机上运行
  • 用C或C++编写,与我们拥有的C SDK进行交互
  • 接受可变数量的同时连接(工作线程)
  • 必须使用线程,而不是分叉(不想处理另一层IPC)

谁能建议一个库,最好是一些示例代码才能开始使用?

c c++ multithreading network-programming client-server

10
推荐指数
3
解决办法
4550
查看次数

Cocoa客户端/服务器应用程序

在Cocoa中是否有一种方法目前被认为是创建多层或客户端服务器应用程序的最佳实践?

我是一位经验丰富的网络开发人员,我非常喜欢Python.我虽然是Cocoa的新手.我正在写的应用程序是一个大型医院的患者管理系统.预计系统会随着时间的推移存储大量数据,但在单个会话期间传输的数据非常轻(大多数只是文本).假设通信通过本地网络(有线或无线)发生.当然,它必须是高度安全的.

我能想到的最好的方法是编写一个Python REST Web服务并通过Cocoa应用程序连接到它.也许我甚至会使用Python来编写Cocoa应用程序本身.

看看Cocoa,我在Cocoa中看到了非常棒的技术,比如CoreData,但我找不到任何与客户端服务器开发类似的技术.我只是想确保我没有遗漏任何东西.

你怎么看?

真实世界的例子将不胜感激.

提前致谢.

python cocoa pyobjc web-services client-server

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

如何识别客户端(客户端套接字)?

根据我的理解,serverSocket = new ServerSocket(portNumber)我们创建了一个可能"监听"指示端口的对象.通过clientSocket = serverSocket.accept()我们强制服务器套接字"监听"其端口并从任何尝试通过与服务器关联的端口连接到服务器的客户端"接受"连接.当我说"客户端尝试连接到服务器"时,我的意思是客户端程序执行"nameSocket = new Socket(serverIP,serverPort)".

如果客户端尝试连接到服务器,则服务器"接受"此客户端(即创建与此客户端关联的"客户端套接字").

如果新客户端尝试连接到服务器,则服务器会创建另一个客户端套接字(与新客户端关联).但是服务器如何知道它是一个"新"客户端还是已经有套接字的"旧"客户端?或者,换句话说,如何识别客户?通过他们的IP?通过他们的IP和端口?通过一些"签名"?

如果"旧"客户端再次尝试使用Socket(serverIP,serverIP)会发生什么?服务器会创建与此客户端关联的第二个套接字吗?

sockets networking client-server

10
推荐指数
2
解决办法
2万
查看次数

客户端服务器上的云计算:差异,缺点和优点?

据我所知,云计算可能是软件架构师的演变,它将取代目前的一些架构,如客户端 - 服务器.

这两个架构似乎与我有相似之处(我对两者都知之甚少),但我不知道它们之间的差异.云计算在客户端 - 服务器架构上的缺点和优势是什么?

非常感谢.

architecture cloud client-server

10
推荐指数
1
解决办法
3万
查看次数

PHP:将数据从服务器推送到客户端的最佳方式.....

在我的项目I need to push some data from server to the clientfacebook不会,如果some updates are performed in the clients profile像有人在客户端的墙上写的东西,Facebook的自动推送到客户端.

目前I am using AJAX要持续check the DB for the updates.那是not a good practice.

我不想依赖客户端进行更新.我希望在server should automatically push the data to the client side执行与客户端相关的某些更新时.

请建议一些网址或示例代码......

提前致谢.....

php zend-framework client-server

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

Netty - 如何在客户端获取服务器响应

我主要在那里与Netty,但一个概念仍然暗指我,我在教程中找不到任何东西等等.首先,我确实理解Netty是异步的,但是必须有一种方法让客户端调用服务器并能够获得超出处理程序的响应.让我解释一下.

我有一个客户,如下图所示.请注意,我知道它是自助的,并且每次调用都建立了一个新连接,这就是为了使示例更小,更简洁.请忽略这一事实.

Client.java

// ServerResponse is a result from the server, in this case 
// a list of users of the system (ignore that each time it's all bootstrapped).

public User[] callServerForInformationFromGUIWidget()
{
    ClientBootstrap bootstrap = new ClientBootstrap(...);
    bootstrap.setPipelineFactory(...);

    ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
    Channel channel = future.awaitUninterruptibly().getChannel();

    // Where request is a POJO sent to the server, 
    // with a request such as get me a list of users
    RequestPojo request = new RequestPojo(requestUserListCommand);

    ChannelFuture lastWriteFuture = channel.write(request); …
Run Code Online (Sandbox Code Playgroud)

java networking client-server netty

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