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

📄 clientskt.java

📁 ICQ聊天程序
💻 JAVA
字号:
// 程序:客户端线程类
// 范例文件:clientskt.java

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

class clientskt extends Thread 
{
    Socket skt;        // 客户端联机Socket对象
    InetAddress host;  // 指定的服务端地址
    int port;          // 指定的服务端连接端口
   
    BufferedReader theInputStream;
    PrintStream theOutputStream; 
    String readin;     // 服务端输出的数据
    

    ClientFrame chat;  // 前端的Applet界面

    public clientskt(String ip, int p, ClientFrame chat)
    {
        try {
        	this.chat = chat;
            // 取得服务端的InetAddress对象、通讯连接端口
            host = InetAddress.getByName(ip); 
            port = p;
              
        }
        catch (IOException e)
        {
            chat.TAChat.append("ww"+e.toString());
        }
    }

    public void run()
    {
        try {
            chat.TAChat.append("尝试联机......");       
            
            skt = new Socket(host, port);	// 建立Socket对象并尝试联机

            chat.TAChat.append("联机成功\n");
            
            theInputStream = new BufferedReader(	 // 从InputStream建立读取缓冲区
                new InputStreamReader(skt.getInputStream()));														
            theOutputStream = new PrintStream(skt.getOutputStream());// 从OutputStream中建立PrintStream对象
 
            while(true)	// 读取数据循环
            {
                
                readin = theInputStream.readLine();// 读取服务端传来的数据
                chat.TAChat.append(readin + "\n");// 将之附加在Applet的TextArea上
                chat.TAChat.setCaretPosition(chat.TAChat.getDocument().getLength()-1);
//                chat.TAChat.getAutoscrolls();		??
            }
        }
        catch (SocketException e) // 联机中断时丢出此异常
        {
            chat.TAChat.append("联机中断!\n");
           
            chat.TFAddress.setEnabled(true);	// 设定按钮与输入框是否可用
            chat.loginBtn.setEnabled(true);
            chat.ptpAddress.setEnabled(false);
            chat.ptpChatBtn.setEnabled(false);	 
            chat.closeButton.setEnabled(false);
             
            try {
                skt.close();// 关闭前面的Socket联机,以便可再度联机
            }
            catch (IOException err)
            {
                chat.TAChat.append(err.toString());
            }
        }
        catch (IOException e)
        {
            
            chat.TAChat.append(e.toString());
        }
    }

    // 客户端丢出数据的方法
    public void dataout(String data)
    {
        theOutputStream.println(data);
    }
}

⌨️ 快捷键说明

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