package com.test.view;
import java.net.*;
import java.io.*;
public class ChatSocket
{
private ChatJFrame chatframe; // 聊天室的图形用户界面
private Socket client; // 客户端Socket对象
public ChatSocket(String host, int port, String name) // 主机名、端口号、网名
{
try
{
client = new Socket(host, port); // 创建一个Socket对象时向指定主机的端口发出TCP连接请求
BufferedReader cin = new BufferedReader(new InputStreamReader(client.getInputStream()));
// 获得Socket对象的输入流,创建字符输入流
PrintWriter cout = new PrintWriter(client.getOutputStream(), true);
// 获得Socket对象的输出流,创建字符输出流
chatframe = new ChatJFrame(name, " 客户端 主机" + host + " 端口" + port, cout);
// 创建聊天室的图形用户界面
cout.println(name); // 将自己网名发送给对方
chatframe.receive("连接 " + cin.readLine()); // 接收并显示已连接的对方网名
String aline = "";
do // 从输入流接收对方发来的字符串
{
aline = cin.readLine();
if (aline != null && !aline.equals("bye")) // "bye"是约定的离线信息
chatframe.receive(aline);
} while (aline != null && !aline.equals("bye"));
chatframe.setWriter(null); // 设置聊天室界面的输出流对象为空
cin.close();
cout.close();
client.close(); // 关闭Socket连接
} catch (IOException e)
{
}
}
public static void main(String args[])
{
new ChatSocket("localhost", 2001, "小蜜蜂"); // 指定主机和端口号,指定网名
}
}
阅读(1003) | 评论(0) | 转发(0) |