clientskt.java

来自「Java2游戏编程源码 第九章 很好的学习Java和简单游戏编程的书籍」· Java 代码 · 共 78 行

JAVA
78
字号
// 程序:客户端线程类
// 范例文件:clientskt.java

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

class clientskt extends Thread 
{
    Socket skt;  
    InetAddress host; 
    int port;
 
    BufferedReader theInputStream;
    PrintStream theOutputStream; 
    String readin; 

    ChatOneToOne chat; 

    public clientskt(String ip, int p, ChatOneToOne chat)
    {
        try {
            host = InetAddress.getByName(ip); 
            port = p;
            this.chat = chat;
        }
        catch (IOException e)
        {
            chat.ta.append(e.toString());
        }
    }

    public void run()
    {
        try {
            chat.ta.append("尝试连线......");

            skt = new Socket(host, port);
            chat.ta.append("连线成功\n");

            theInputStream = new BufferedReader(
                new InputStreamReader(skt.getInputStream()));

            theOutputStream = new PrintStream(skt.getOutputStream());

            while(true)
            {
                readin = theInputStream.readLine();
                chat.ta.append(readin + "\n");
            }
        }
        catch (SocketException e) 
        {
            chat.ta.append("连线中断!\n");
            chat.clientBtn.setEnabled(true);
            chat.serverBtn.setEnabled(true);
            chat.tfaddress.setEnabled(true);
            chat.tfport.setEnabled(true);
            try {
                skt.close();
            }
            catch (IOException err)
            {
                chat.ta.append(err.toString());
            }
        }
        catch (IOException e)
        {
            chat.ta.append(e.toString());
        }
    }

    public void dataout(String data)
    {
        theOutputStream.println(data);
    }
}

⌨️ 快捷键说明

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