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

📄 receivmsg.java

📁 Java+Eclipse+Mysql的局域网聊天程序源代码
💻 JAVA
字号:
import java.net.*;
class ReceivMsg implements Runnable
{		
	private int localport;
	private Thread t;
	
	private boolean goon=true;
	
	private Login login;
	private SendMsg sm;
	
	public ListCellInfo friendsvector=new ListCellInfo();	//好友列表
	public ListCellInfo friendsvectorend=new ListCellInfo();
	public int numoffriend=0;				//好友个数
	public int numofonline=0;               //在线的好友个数
	
	public GroupVector groupvector=new GroupVector();		//群列表
	public GroupVector groupvectorend=new GroupVector();
	public int numofgroup=0;					//群个数
	
	public ChatMsg chatmsg=new ChatMsg();				//收到的聊天消息
	public ChatMsg chatmsgend=new ChatMsg();
	public int numofchatmsg=0;

	public ReceivMsg(SendMsg sm,Login login)
	{
		this.localport=login.local_port;
		this.login=login;
		this.sm=sm;
	}
	public void start()
	{
		t=new Thread(this);
		t.start();
		System.out.println("(Client)接收线程启动!");
	}
	public void stop()
	{
		goon=false;
		System.out.println("(Client)接收线程停止!");
	}
	public void run()
	{
		while(goon)
		{
			receiv();
		}
	}
	public void receiv()
	{
		DatagramSocket sockrev=null;
		try
		{
		byte[]receivmsg=new byte[2048];
		DatagramPacket packetreceiv=new DatagramPacket(receivmsg,receivmsg.length);
		sockrev=new DatagramSocket(localport);
		sockrev.receive(packetreceiv);	//阻塞至服务器回应
		
		String tempreceiv=new String(receivmsg,0,packetreceiv.getLength());
		/*****
		 * 启动消息处理线程,把消息处理交给新线程,让接收线程继续接收数据包
		 */
		MsgProcess mp=new MsgProcess(tempreceiv,sm,login,this);
		mp.start();
		
		System.out.println("(Client)接收到一条消息:"+tempreceiv);
		}
		catch(Exception e)
		{
			e.printStackTrace();
			if(sockrev!=null)
				sockrev.close();
		}
		if(sockrev!=null)
			sockrev.close();
	}
}

⌨️ 快捷键说明

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