📄 chatapplet1.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 + -