求java写的多线程socket端口监听服务器端程序,要代界面的.

来源:百度知道 编辑:UC知道 时间:2024/05/06 05:03:39
Socket问题基本情况:

1,要建一个基于TCP连接的Server;

2,总共有40,000个Client,每一个Client都有唯一的身份ID及口令作为建立连接的身份校验;

3,每个Client都会10分钟左右向Server发送一次200字节的数据;

4,每个Client一旦与Server建立连接便始终保持连接,非意外情况不会断开;

5,这样,平均每秒有67个Client向Server发送数据,Server大部分的工作都是接收并简单处理数据;

6,偶尔,Server需要向特定的某个Client发送数据;

7,偶尔,Server需要向所有Client发送数据;
要代这些功能的.能运行的给分不能运行的不给分
先说明一点你说的那些理论上都对但是我现在需要的是能实现的代码,还有我不是想做邮件系统,我是想做做QQ那那样的东西,不过没有这么复杂,我只要实现上面我说的那几个功能就行,一个是接收客户端的数据并能显示是哪个发的,在一个就是能像下面发数据,像单个,和多个,还有我要的是java写的

业务需要这么复杂吗???如果你要实现服务器和客户端都可以向对方发送消息,而不等待对方应答,只需要把InputStream和OutputStream分别放在两个不同线程里就行了,即是说把接收流与发送流分别用一个线程监听处理。如果要实现不分客户端服务器的话,用UDP通信即可
补充回答:如果不涉及到MIME,只是收发简单文本邮件。就会比较简单。因为就像你说的,smtp和pop3协议就是文本格式的。你用Socket建立连接后,就像读文件一样,一行一行的读数据,然后按照协议分析数据格式。例如如果开始时USER那么后面可能跟的就是用户等。
就是一个字符串解析和匹配的过程。网上好像有这类代码,自己找一个学习一下。我以前用C在68k上作过,不是很难。不过代码已经没有了。

你的是邮件客户端,功能类似于outlook,foxmail等,如果你能上网,就不需要邮件服务器,直接用自己的邮件账号来测试,例如如果你有一个sina的邮件账户,就可以从sina服务器收发邮件。
不过为了测试方便,还是上网去收一个邮件服务器把。例如foxmail server等。网上有教程,可以配置好的。

对于编程,既然要求用socket编写,那么就要熟悉java的socket编程,这部分倒是很简单。可能还需要看看多线程部分。

另外,你需要学习一下, smtp和pop3这两个网络协议的内容,因为你需要解析这两个协议。如果需要收发代附件的,还需要看mime的内容,不过估计不需要。

其实java有自己的类库javamail,可以实现手法邮件,功能很强大。不过既然要求必须用socket,那就不能这个了。

说的太罗嗦了。总结一下:
1)配置邮件服务器,搭建测试环境
2)熟悉java的socket编程、 Swing编程(编写界面)、多线程(选用)
3)熟悉smtp和pop3的内容(内容很多,了解基本的就可以)
网上应该有类似代码,可以用来参考。