📄 guest.java
字号:
package datagram003packet;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.io.*;
import java.io.*;
import javax.microedition.lcdui.*;
public class Guest extends Form implements Runnable, CommandListener {
private Datagram_MIDlet dm;
private Display display;
//public Form form;
private TextField get_mesg;
private TextField history;
private TextField send_mesg;
private Command exitCommand;
private Command sendCommand;
private DatagramConnection dc;
private Sender sender;
private boolean running=false;
private String address;
///////
private Command sendImage;
private Image image;
private ImageItem ii;
///
private Guest_ImageItems gii;
private Command selectImage;
public String img_path="/8.PNG";
public Guest(Datagram_MIDlet dm)
{
super("Chat_Guest");
this.dm=dm;
display=Display.getDisplay(dm);
//form=new Form("Chat_Guest");
get_mesg=new TextField("GetMesg:",null,200,TextField.ANY);
history=new TextField("History:",null,200,TextField.ANY);
send_mesg=new TextField("SendMesg:",null,200,TextField.ANY);
exitCommand=new Command("Exit",Command.EXIT,1);
sendCommand=new Command("Send",Command.OK,1);
selectImage=new Command("SecletImage",Command.OK,1);
sendImage=new Command("SendImage",Command.OK,1);
this.append(get_mesg);
this.append(history);
this.append(send_mesg);
//
ii=new ImageItem("Hava a Look",null,ImageItem.LAYOUT_CENTER,"图片无法显示");
this.append(ii);
//
this.addCommand(exitCommand);
this.setCommandListener(this);
display.setCurrent(this);
}
//creat startRun()
public void startRun()
{
running=true;
Thread tt=new Thread(this);
tt.start();
}
//creat stopRun()
public void stopRun()
{
running=false;
}
public void run() {
// TODO 自动生成方法存根
try
{
dc=(DatagramConnection)javax.microedition.io.Connector.open("datagram://localhost:5555");
sender=new Sender(dc);
this.addCommand(sendCommand);
this.addCommand(selectImage);
this.addCommand(sendImage);
while(running)
{
Datagram dg=dc.newDatagram(5500);
dc.receive(dg);
System.out.println("你所受到的字节长度为:"+dg.getData().length);
address=dg.getAddress();
///
if(dg.getLength()>300)
{
System.out.println("即将接受图片");
//Datagram dg2=dc.newDatagram(65000);
//dc.receive(dg2);
byte[]buf=dg.getData();
image=Image.createImage(buf,0, buf.length);
ii.setImage(image);
}
/////
else
{
System.out.println("即将接受文字信息");
byte[]buf=dg.getData();
ByteArrayInputStream bis=new ByteArrayInputStream(buf);
DataInputStream dis=new DataInputStream(bis);
String str_temp=dis.readUTF();
get_mesg.setString(str_temp);
}
}
stop();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//creat stop()
public void stop()
{
try
{
if(dc!=null)
{
dc.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void commandAction(Command c, Displayable d) {
// TODO 自动生成方法存根
if(c==sendCommand)
{
sender.send(send_mesg.getString(), address);
history.setString(send_mesg.getString());
send_mesg.setString("");
}
else if(c==exitCommand)
{
try
{
dm.destroyApp(true);
dm.notifyDestroyed();
}
catch(Exception e)
{
e.printStackTrace();
}
}
else if(c==selectImage)
{
gii=new Guest_ImageItems(display,this);
display.setCurrent(gii);
}
else if(c==sendImage)
{
try
{
InputStream is=this.getClass().getResourceAsStream(img_path);
int img_length=is.available();//get the size of image;
byte []buf=new byte[img_length];
is.read(buf,0, buf.length);//get the data of image;
image=Image.createImage(buf,0, buf.length);//creat the image;
ii.setImage(image);
Datagram dg=dc.newDatagram(buf,buf.length,address);
dc.send(dg);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -