⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverthread.java

📁 实现简单的群聊功能
💻 JAVA
字号:
package cn.edu.buaa.scse.liyi.network.test;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;

public class ServerThread extends Thread
{
	Socket clientRequest;
	ObjectInputStream objectInputStream;
	ObjectOutputStream objectOutputStream;
	Message message=null;
	Object obj=null;
	
	public ServerThread(Socket s)
	{ // serverThread的构造器
		this.clientRequest=s;
		try
		{
			objectInputStream=new ObjectInputStream(clientRequest.getInputStream());
			objectOutputStream=new ObjectOutputStream(clientRequest.getOutputStream());
		}
		catch(IOException e)
		{
			e.printStackTrace();
			System.out.println(e.getMessage());
		}
	}
	
	public void run()
	{// 线程的执行方法
		boolean done=false;
		while(!done)
		{

			try
			{
				obj=objectInputStream.readObject();
			}
			catch(IOException e)
			{
				e.printStackTrace();
			}
			catch(ClassNotFoundException e)
			{
				e.printStackTrace();
			}
				
			if(obj==null)
			{
				done=true;
				continue;
			}
			if(obj instanceof Message)
			{
				message=(Message)obj;
			}
			if(message==null)
			{
				done=true;
				continue;
			}
			// 回调接口推接收的信息
			// h.handle(message);
			System.out.println("receive client msg:"+message.toString());
			
			try
			{
				objectOutputStream.writeObject(new Message());
			}
			catch(IOException e)
			{
				e.printStackTrace();
			}
		}
		try
		{
			objectOutputStream.flush();
			objectOutputStream.close();
			objectInputStream.close();
			clientRequest.close();		// 关闭套接字
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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