给你个地址,去看看吧。
http://kanpiaoxue.iteye.com/admin/blogs/1956800
可以在这个基础上面修改一下。
推荐你使用netty来写你的服务器端,它的性能非常优秀。
然后你还是看看《Java网络编程》这本书吧。

解决方案 »

  1.   

    我现在自己整出了一个解决的办法,比较粗陋,莫见笑:主线程中用一个ServerSocket的accept()方法来对所有客户端发来的请求进行全部接收;从接收得到的socket中读取客户ip地址信息,以此ip为依据判断之前该客户端是否已建立了与服务器的连接,如果之前还未建立,那么就在服务器端重开一个线程,并将此socket传入,线程中拿到这个socket之后在其内部进行相应的处理,该线程随后会被存入一个Map中,其以ip地址为键,线程对象为值;下次如果此客户端再发来请求,就可以在此Map中直接找到处理它的线程来对其进行处理;线程中在需要等待客户端信息才能继续的地方,暂时用wait来令其等待,当主线程又接到此客户端的一个请求信息之后,再将该线程唤醒(Notify);当客户端断开连接时(服务器端会收到一个标记量),服务器端的线程运行结束,并将Map中的对应项移除。