📄 receivmsg.java
字号:
import java.net.*;
class ReceivMsg implements Runnable
{
private boolean stop=true; //停止标志
private boolean pause=true; //暂停标志
private Thread t=null;
private QQServer qqs=null;
//private String Server_addr=null; //服务端地址
private int Server_port=0; //服务端口
public ReceivMsg(int port,QQServer qqs)
{
//this.Server_addr=addr;
this.Server_port=port;
this.qqs=qqs;
}
public void start() //服务端开始
{
if(stop) //如果是被停止
{
stop=false;
pause=false;
t=new Thread(this); //创建新线程
t.start();
}
else if(pause) //如果是被暂停
{
pause=false;
}
System.out.println("(Server)接收线程启动!");
}
public void pause() //服务端暂停
{
pause=true;
System.out.println("(Server)接收线程暂停!");
}
public void stop() //服务端停止
{
stop=true;
System.out.println("(Server)接收线程停止!");
}
public void setPort(int port)
{
this.Server_port=port;
}
public void run()
{
while(!stop)
{
if(!pause)
{
Receiv();
}
else
{
try
{
t.sleep(100);
}
catch(InterruptedException ie)
{
System.out.println("ReceivMsg.java");
ie.printStackTrace();
}
}
}
}
public void Receiv()
{
DatagramSocket dsocket=null;
String tempmsg=null;
try
{
byte []buffbytes=new byte[2048]; //缓冲区
DatagramPacket datapacket=new DatagramPacket(buffbytes,buffbytes.length);
dsocket=new DatagramSocket(Server_port);
dsocket.receive(datapacket);
tempmsg=new String(buffbytes,0,datapacket.getLength());
ProcessMsg pm=new ProcessMsg(tempmsg,qqs);
pm.start();
}
catch(Exception e)
{
e.printStackTrace();
dsocket.close();
}
dsocket.close();
System.out.println("(Server)接收到一条消息:"+tempmsg);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -