userthread.java

来自「java网络高级编程的配套源码,java网络高级编程为清华出版社出版.」· Java 代码 · 共 67 行

JAVA
67
字号
/*源程序清单12-5*/

package server;

import java.net.*;
import java.lang.*;
import java.io.*;
import java.awt.*;
import java.util.*;

public class UserThread extends Thread
{
  protected Socket connectionSocket;
  protected DataInputStream inStream;
  SimpleServer server;
  String userIP="";
  String userName="";

  public UserThread(SimpleServer server,Socket connSock)throws IOException
  {
    InetAddress inet=connSock.getInetAddress();
    userIP=inet.getHostAddress();
    connectionSocket=connSock;
    this.server=server;
    inStream=new DataInputStream(connSock.getInputStream());
  }

  protected void closeConnection()
  {
    try
    {
      connectionSocket.close();
    }
    catch(Exception oops){}
    stop();
  }

  public void run()
  {
    while(true)
    {
      try
      {
        String str=inStream.readUTF();
        StringTokenizer st=new StringTokenizer(str,":%:");
        String key=st.nextToken();
        if(key.equals("login"))
        {
          userName=st.nextToken();
          server.list1.addItem(userIP+"---"+userName);
        }
        else if(key.equals("quit"))
        {
          server.list1.remove(userIP+"---"+userName);
          server.removeServerConn(userIP,userName);
          stop();
        }
        else
          server.tellEveryone(str);
      }
      catch(Exception oops)
      {}//end of try
    }//end of while
  }//end of public
}//end of class

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?