套接字编程--Java - 许多客户端一个套接字问题 [英] Socket Programming -Java - Many Clients One Socket Question(s)

查看:159
本文介绍了套接字编程--Java - 许多客户端一个套接字问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上我试图获取许多java客户端连接到我的ColdFusion服务器上的套接字(使用套接字网关)。然而在我甚至开始编码之前,我有点困惑关于套接字和他们的表现。首先,是为许多(1000+)客户端连接到一个服务器上的一个套接字(说端口2202)的套接字?如果所有在等待的性能如何基本上是一个ping,或这样的事情,当这些客户端收到这个ping,他们可以得到一些新的数据。

Essentially Im trying to get many many java clients connect to a socket on my ColdFusion server (Using the Socket Gateway). However before i even start to code this, Im a little confused about sockets and their performance. First of all, are sockets meant for many(1000+) clients connecting to one socket (say port 2202) on one server? How is the performance if all there waiting for is basically a ping, or something such that when these clients receive this "ping" they can go get some new data.

谢谢,
Faisal Abid

Thanks, Faisal Abid

推荐答案

Socket由以下元组标识:

Socket is identified by following tuple,


  1. 源IP

  2. 源端口

  3. 目标IP

  4. 目标端口

  5. 协议(TCP或UDP)

  1. Source IP
  2. Source Port
  3. Dest IP
  4. Dest Port
  5. Protocol (TCP or UDP)

甚至1000个客户端都连接到同一个端口(dest port),每个都会得到自己的套接字。因此您将有1000个插槽打开。

Even 1000 clients all connect to the same port (dest port), each will get its own socket. So you will have 1000 sockets open.

这将是艰难的保持1000插座与阻塞I / O,这通常意味着1000线程。你需要使用NIO。我们有一个使用 Mina 编写的服务器,可以在高峰期处理2000个连接。

It's going to be tough to maintain 1000 sockets with blocking I/O, which usually means 1000 threads. You need to use NIO. We have a server written with Mina, which can handle 2000 connections at peak.

这篇关于套接字编程--Java - 许多客户端一个套接字问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆