专业版尚未开始(04-12-17)
三峡大学内的同学可以到http://ftp.ctgu.edu.cn/soft/down.php?act=up&id=2800下载
/*
* date: 2004-11-29 author:zhangyu6050;
* email: dazuibazhangyu@eyou.com
* ctgu (china three groges university)
* todo: 服务器主程序
* bugs:
*/
import util.dateutil;
import java.net.*;
import java.awt.*;
import java.awt.event.windowadapter;
import java.awt.event.windowevent;
import java.io.*;
import javax.swing.*;
import java.applet.*;
import java.util.*;
public class chatserver {
private int port = 1775; //端口号
private serversocket servers; //服务器套节字
public static broadcast broad;//通讯专用类,单态模式设计
private jtextarea display;
/**
*初始化
*/
public chatserver() {
setupgui();
runserver();
}
public void runserver(){
try {
servers=new serversocket(port);
} catch (ioexception e2) {
showmsg("在指定端口无法监听"+e2.getmessage());
}
try {
broad= broadcast.getinstence();//做好准备
while(true)
{
showmsg("等待接入......");
socket socket = servers.accept();
//记录登录时间
string s = dateutil.format(calendar.getinstance(),dateutil.ymdhms)+"/r";
showmsg("接入时间:"+s);
//实例化一个代理
angent angent = new angent(socket);
//实例化一个服务线程
serverthread serverthread = new serverthread(angent);
serverthread.start();
servers.close();
}
}
catch(ioexception e)
{
showmsg(e.getmessage()+"服务器异常在要关闭");
}
}
public void closeserver(){
system.out.print("服务器正在关闭!");
try {
servers.close();
} catch (ioexception e) {
system.err.println(e.getmessage()+"/n服务器无法关闭");
e.printstacktrace();
}
}
//set up a frame and return it
private jframe setupgui(){
//setup a frame and set title
jframe jf=new jframe();
port=integer.parseint(joptionpane.showinputdialog("input port please:"));
jf.settitle("server");
//get the pane of the frame
container pane=jf.getcontentpane();
//set up modules
display=new jtextarea();//显示区
jlabel sendlable=new jlabel("enter msg");
jtextfield sysbroadcast=new jtextfield(20);//系统广播发送
jpanel sendpane=new jpanel();
sendpane.add(sendlable);sendpane.add(sysbroadcast);
pane.add(sendpane, borderlayout.north);
pane.add("center",new jscrollpane(display));
jf.setsize(400,300);
jf.setvisible(true);
jf.addwindowlistener(new
windowadapter()
{
public void windowclosing(windowevent e)
{
system.exit(0);
}
});
return jf;
}
void showmsg(string s){
display.append(s+"/n");
}
public static void main(string args[]){
new chatserver();
}
}
闽公网安备 35060202000074号