最近更新:
网页编辑
相关内容

最后的工作
作者Brian Slesinsky


最后要做的是将用户输入的文字传输到闲聊服务器,以使用户可以登录并同其他人聊天。这里是完整的小程序代码。
Chat.java


import java.applet.Applet;
import java.awt.*;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;

public class Chat extends Applet implements Runnable {
TextArea ta;
TextField tf;
Socket s;
Thread t;
OutputStream os;

public void init() {
ta = new TextArea("",20,80);
ta.setEditable(false);
add(ta);

tf = new TextField(80);
add(tf);
}

public void start() {
try {
String host = getParameter("host");
int port = Integer.parseInt(getParameter("port"));
s = new Socket(host,port);
os = s.getOutputStream();
t = new Thread(this);
t.start();
} catch(Exception e) {
ta.appendText("applet error: "+e+"\n");
}
}

public void stop() {
try {
t.stop();
s.close();
} catch(Exception e) {
ta.appendText("applet error: "+e+"\n");
}
}

public void run() {
try {
InputStream is = s.getInputStream();
byte[] buf = new byte[200];

while(true) {
int avail = is.available();
if(avail<1) avail=1;
if(avail>buf.length) avail=buf.length;
int bytes_read = is.read(buf,0,avail);
int j = 0;
for(int i=0; i<bytes_read; i++) {
if(buf[i]!='\r') {
buf[j++] = buf[i];
}
}
ta.appendText(new String(buf, 0, 0, j));
}
} catch(Exception e) {
System.err.print(e);
}
}

byte[] linebuffer = new byte[80];
public boolean handleEvent(Event e) {
if(e.id==Event.ACTION_EVENT &&
e.target==tf) {

String line = tf.getText();
int len = line.length();
if(len>linebuffer.length-1) len = linebuffer.length-1;
line.getBytes(0, len, linebuffer, 0);
linebuffer[len] = '\n';
try {
os.write(linebuffer, 0, len+1);
} catch(Exception ex) {
System.err.print(ex);
}
tf.setText("");
return true;
}
return false;
}
}

什么是Java
Java能做什么
Java怎样改变我的生活
"Hello World"小应用程序
常见编译和解释错误
面向对象编程
什么是对象?
什么是消息?
什么是类?
什么是继承?
Java语言
变量和数据类型
操作符
表达式
流程控制
数组和字符串
类的简介
对象的生命周期
创建类
一个类的实例
管理接口
创建接口
实现嵌套类
Java和Shockwave
怎样制作弹出式工具栏的解答
向你的用户提供客户反馈薄
闲聊服务器的Java客户端
'Hello World'测试
设置该“Chat”的面貌
处理input事件
连接到闲聊服务器上
传输文本
Java的移植性
最后的工作
 
 
上一页
下一页
返回首页 
收集整理
服务大家