📄 clientskt1.java
字号:
// 程序:客户端线程类
// 范例文件:clientskt.java
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
class clientskt1 extends Thread
{
Socket skt1; // 客户端联机Socket对象
InetAddress host; // 指定的服务端地址
int port; // 指定的服务端连接端口
String OnLineNum;
BufferedReader theInputStream1;
PrintStream theOutputStream1;
String readin; // 服务端输出的数据
ClientFrame chat; // 前端的Applet界面
public clientskt1(String ip, int p, ClientFrame chat)
{
try {
// 取得服务端的InetAddress对象、通讯连接端口
host = InetAddress.getByName(ip);
port = p;
this.chat = chat;
}
catch (IOException e)
{
chat.TAOnLine.append(e.toString());
}
}
public void run()
{
try {
skt1 = new Socket(host, port); // 建立Socket对象并尝试联机
theInputStream1 = new BufferedReader(new InputStreamReader(skt1.getInputStream())); // 从InputStream建立读取缓冲区
theOutputStream1 = new PrintStream(skt1.getOutputStream());// 从OutputStream中建立PrintStream对象
while(true) // 读取数据循环
{
readin = theInputStream1.readLine();// 读取服务端传来的数据 Vector message1 第一个值记录在线人数
chat.TAOnLine.setText("");
while(true)
{
chat.TAOnLine.append(readin + "\n");
readin = theInputStream1.readLine();// 将之附加在Applet的TextArea上
if(readin.equals("end"))break;
}
}//while(true)
}
catch (SocketException e) // 联机中断时丢出此异常
{
chat.TAOnLine.append("联机中断!\n");
try {
skt1.close(); // 关闭前面的Socket联机,以便可再度联机
}
catch (IOException err)
{
chat.TAOnLine.append(err.toString());
}
}
catch (IOException e)
{
chat.TAOnLine.append(e.toString());
}
}
// 客户端丢出数据的方法
public void dataout(String data)
{
theOutputStream1.println(data);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -