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

📄 guest.java

📁 运用HTTPCONNECTION做一个简单的聊天程序
💻 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 + -