- importjava.io.*;
- importjava.net.*;
- importjava.util.*;
- publicclassVerySimpleChatServer{
- /**
- *@paramargs
- */
- ArrayListclientOutputstreams;
- publicclassClientHandlerimplementsRunnable{
- BufferedReaderreader;
- Socketsock;
- publicClientHandler(SocketclientSocket){
- try{
- sock=clientSocket;
- InputStreamReaderisReader=newInputStreamReader(sock.getInputStream());
- reader=newBufferedReader(isReader);
- }catch(Exceptionex)
- {
- ex.printStackTrace();
- }
- }
- publicvoidrun(){
- //TODOAuto-generatedmethodstub
- Stringmessage;
- try{
- while((message=reader.readLine())!=null){
- System.out.println(message);
- tellEveryone(message);
- }
- }catch(Exceptionex){ex.printStackTrace();}
- }
- }
- publicstaticvoidmain(String[]args){
- //TODOAuto-generatedmethodstub
- newVerySimpleChatServer().go();
- }
- publicvoidgo()
- {
- clientOutputstreams=newArrayList();
- try{
- ServerSocketserverSock=newServerSocket(5000);
- while(true){
- SocketclientSocket=serverSock.accept();
- PrintWriterwriter=newPrintWriter(clientSocket.getOutputStream());
- clientOutputstreams.add(writer);
- Threadt=newThread(newClientHandler(clientSocket));
- t.start();
- System.out.println("gotaconnection");
- }
- }catch(Exceptionex){
- ex.printStackTrace();
- }
- }
- publicvoidtellEveryone(Stringmessage){
- Iteratorit=clientOutputstreams.iterator();
- while(it.hasNext()){
- try{
- PrintWriterwriter=(PrintWriter)it.next();
- writer.println(message);
- writer.flush();
- }catch(Exceptionex){
- ex.printStackTrace();
- }
- }
- }
- }
SOCKET服务端
最新推荐文章于 2024-07-17 00:35:25 发布