小程序

发布时间:2023-12-24 06:19:29   来源:文档文库   
字号:
package javalearn;
import java.awt.*; import java.awt.List; import java.awt.event.*; import java.io.*; import java.net.*; import java.text.DateFormat; import java.util.*; import javax.swing.*;
public class Client extends JFrame { private boolean loginFlag = false;// true时表示已经登录,为false时表示未登录 private final JTextField text_n; private final JTextField text_s; private JList userlist; private JTextArea talkmessage; private ObjectOutputStream out;// 声明输出流对象


public static void main(String args[]{ EventQueue.invokeLater(new Runnable( { public void run( {
try { Client clientframe = new Client(;
clientframe.setVisible(true; clientframe.createClientSocket(;// 调用方法创建套接字对象 } catch (Exception e { e.printStackTrace(; } } }; }

public void createClientSocket( {
try { Socket clientsocket = new Socket("localhost", 1989; // 创建套接字对
out = new ObjectOutputStream(clientsocket.getOutputStream(; // 创建输出流对象
new ClientThread(clientsocket.start(; // 创建并启动线程对象
} catch (UnknownHostException e { e.printStackTrace(;
} catch (IOException e { 1 / 20
e.printStackTrace(; } }

class ClientThread extends Thread {
Socket socket; public ClientThread(Socket socket { this.socket = socket; } public void run( { String tempname=new String(;
try { BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(; // 创建输入流对象 while (true { DateFormat date = DateFormat.getDateInstance(; DateFormat实例
String dateString = date.format(new Date(; // 日期
date = DateFormat.getTimeInstance(DateFormat.MEDIUM; DateFormat实例
String timeString = date.format(new Date(; // 时间


String recive = in.readLine(.trim(;// 读取信息 //String recive="MSG:张三:USER:大王叫我去巡山"; //String recive="LOGIN:张三"; //String recive="LOGOUT:张三"; //String recive="ERR:服务器崩溃";
//String recive="SHUTDOWN:"; // 格式化为// 格式化为 //String recive="KICK:看不惯你"; //String recive="LIST:张三:李四:王二麻子"; StringTokenizer Func=new StringTokenizer(recive,":";

if (!recive.startsWith("MSG:" { // 接收到的不是消息
if (recive.startsWith("LOGIN:" { // 接收到的是登录消息
Func.nextToken(; tempname=Func.nextToken(; talkmessage.append("<"+tempname+">, " +dateString+" "+timeString+ "\n"; if(tempname.equals(text_n.getText(==true{
text_s.setEditable(true; 2 / 20

本文来源:https://www.2haoxitong.net/k/doc/400c0223ba4cf7ec4afe04a1b0717fd5370cb276.html

《小程序.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式