SOCKET服务端

Code:
  1. importjava.io.*;
  2. importjava.net.*;
  3. importjava.util.*;
  4. publicclassVerySimpleChatServer{
  5. /**
  6. *@paramargs
  7. */
  8. ArrayListclientOutputstreams;
  9. publicclassClientHandlerimplementsRunnable{
  10. BufferedReaderreader;
  11. Socketsock;
  12. publicClientHandler(SocketclientSocket){
  13. try{
  14. sock=clientSocket;
  15. InputStreamReaderisReader=newInputStreamReader(sock.getInputStream());
  16. reader=newBufferedReader(isReader);
  17. }catch(Exceptionex)
  18. {
  19. ex.printStackTrace();
  20. }
  21. }
  22. publicvoidrun(){
  23. //TODOAuto-generatedmethodstub
  24. Stringmessage;
  25. try{
  26. while((message=reader.readLine())!=null){
  27. System.out.println(message);
  28. tellEveryone(message);
  29. }
  30. }catch(Exceptionex){ex.printStackTrace();}
  31. }
  32. }
  33. publicstaticvoidmain(String[]args){
  34. //TODOAuto-generatedmethodstub
  35. newVerySimpleChatServer().go();
  36. }
  37. publicvoidgo()
  38. {
  39. clientOutputstreams=newArrayList();
  40. try{
  41. ServerSocketserverSock=newServerSocket(5000);
  42. while(true){
  43. SocketclientSocket=serverSock.accept();
  44. PrintWriterwriter=newPrintWriter(clientSocket.getOutputStream());
  45. clientOutputstreams.add(writer);
  46. Threadt=newThread(newClientHandler(clientSocket));
  47. t.start();
  48. System.out.println("gotaconnection");
  49. }
  50. }catch(Exceptionex){
  51. ex.printStackTrace();
  52. }
  53. }
  54. publicvoidtellEveryone(Stringmessage){
  55. Iteratorit=clientOutputstreams.iterator();
  56. while(it.hasNext()){
  57. try{
  58. PrintWriterwriter=(PrintWriter)it.next();
  59. writer.println(message);
  60. writer.flush();
  61. }catch(Exceptionex){
  62. ex.printStackTrace();
  63. }
  64. }
  65. }
  66. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值