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

📄 chatapplet1.java

📁 TCP一对多通信
💻 JAVA
字号:
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.net.*;
public class chatApplet1 extends Applet implements Runnable
{
	TextArea m_textarea;//信息显示窗口
	TextField m_textfield;//信息输入窗口
	DataInputStream m_in;
	DataOutputStream m_out;
	//Applet初始化
	public void init()
	{
		//{{创建窗口
		setLayout(null);
		setSize(426,266);
		//}}
		m_textarea=new TextArea(10,10);//10行,10列
		m_textfield=new TextField();
		m_in=null;
		m_out=null;
		try
		{
			URL url=getCodeBase();//getCodeBase()用于得到此Applet的URL
			InetAddress inetaddr=InetAddress.getByName(url.getHost());
		//	InetAddress inetaddr=InetAddress.getByName("192.168.2.1");
			Socket m_socket;
		//	System.out.println("Server:"+inetaddr+" "+url.getHost()+""+url.getProtocol());
			m_socket=new Socket(inetaddr,5555);
			m_in=new DataInputStream(m_socket.getInputStream());
			m_out=new DataOutputStream(m_socket.getOutputStream());	
			
		}	
		catch(Exception e)
		{
			System.out.println("Error:"+e);	
		}
		setLayout(new BorderLayout());
		add("Center",m_textarea);
		add("South",m_textfield);
		m_textarea.setEditable(false);
		//启动监听线程
		new Thread(this).start();
	}
	/*当用户在信息输入域输入回车后,
	 *读取字符串,发送给服务方。
	 **/
	 public boolean handleEvent(Event event)
	 {
	 	String b=m_textfield.getText();
	 	if((event.target==m_textfield)&&(event.id==Event.ACTION_EVENT))
	 	{
	 		m_textfield.setText("");
	 		try
	 		{
	 			m_out.writeUTF(b);	
	 		}	
	 		catch(IOException e)
	 		{
	 			
	 		}
	 		return true;
	 	}
	 	else
	 	return super.handleEvent(event);
	 }
	 /*监听线程在这里读取chat server传来的消息,
	  *并显示在通信显示窗口中。
	  **/
	 public void run()
	 {
	 	try
	 	{
	 		//监听服务者发来的消息,线程将阻塞在该语句中,
	 		//直到消息到来。
	 		while(true)
	 		{
	 			String s=m_in.readUTF();
	 			if(s!=null)
	 			//将消息显示在信息显示窗口中。
	 			m_textarea.append(s+"\n");	
	 		}	
	 	} 
	 	catch(Exception e)
	 	{
	 		m_textarea.append("Network problem or Sever down.\n");
	 		m_textfield.setVisible(false);	
	 	}		
	 }
	 public void stop()
	 {
	 	try
	 	{
	 		m_out.writeUTF("leave");		
	 	}	
	 	catch(IOException e)
	 	{
	 		
	 	}
	 }
}

⌨️ 快捷键说明

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