亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chatserver.java

?? 關于網絡聊天的
?? JAVA
字號:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;

public class ChatServer extends Observable implements Serializable {
	JTextArea jtArea = new JTextArea();
	JTextArea clientInfo = new JTextArea();
	List<ConnectClient> clientList = new ArrayList<ConnectClient>();

	public static void main(String[] args) {
		new ChatServer().newServer();
	}

	public void addText(String s) {
		// jtArea.append(s + "\n");
		this.setChanged();
		this.notifyObservers(s);
	}

	public void newServer() {
		JFrame jf = new JFrame();
		jf.setLayout(new GridLayout(1, 2));
		jf.setTitle("簡易聊天服務端1.0");
		this.jtArea.setEditable(false);
		this.clientInfo.setEditable(false);
		JScrollPane jsp = new JScrollPane(jtArea);
		jsp
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		JScrollPane jspInfo = new JScrollPane(clientInfo);
		jspInfo
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		jf.add(jspInfo);
		jf.add(jsp);
		jf.setBounds(150, 100, 400, 500);
		jf.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		jf.setVisible(true);
		startSever();
	}

	public void startSever() {
		ServerSocket server = null;
		try {
			server = new ServerSocket(8788);
			jtArea.append("服務器啟動成功....." + "\n");
			new Thread(new updataClients()).start();
			while (true) {
				Socket s = server.accept();
				ConnectClient cc = new ConnectClient(s);
				clientList.add(cc);
				addText(cc.getName() + ":" + new Date() + ":" + "連接到服務器");
				jtArea.append(cc.getName() + ":" + s.getInetAddress() + ":"
						+ s.getPort() + ":" + "連接到服務器" + ":" + new Date()
						+ "\n");
				this.addObserver(cc);
				new Thread(cc).start();
			}
		} catch (BindException e) {
			jtArea.append("端口被占用,請退出" + "\n");
		} catch (IOException e) {
			jtArea.append("服務器啟動失敗,請退出" + "\n");
			e.printStackTrace();
		}
	}

	class ConnectClient implements Runnable, Observer, Serializable {
		private boolean beConneted = false;
		private transient Socket s = null;
		private transient DataInputStream dis = null;
		private transient DataOutputStream dos = null;
		private String name = null;

		public String getName() {
			return name;
		}

		public ConnectClient(Socket ss) {
			this.s = ss;
			this.name = name;
			beConneted = true;
			try {
				dis = new DataInputStream(s.getInputStream());
				dos = new DataOutputStream(s.getOutputStream());
				name = dis.readUTF();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

		public void sendMes(String s) {
			try {
				if (beConneted)
					dos.writeUTF(s);
			} catch (IOException e) {

			}
		}

		@Override
		public void run() {
			try {
				while (beConneted) {
					String ss = dis.readUTF();
					addText(name + ":" + ss + "      " + new Date());
				}
			} catch (SocketException e) {
				addText(name + ":" + "斷開" + ":" + new Date());
				jtArea.append(name + ":" + s.getInetAddress() + ":"
						+ s.getPort() + ":" + "斷開" + ":" + new Date() + "\n");
				clientList.remove(this);
				beConneted = false;
			} catch (IOException e) {
			} finally {
				try {
					if (dos != null)
						dos.close();
					if (dis != null)
						dis.close();
					if (s != null)
						s.close();
					beConneted = false;
					clientList.remove(this);
					deleteObserver(this);
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
		}

		@Override
		public void update(Observable o, Object arg) {
			String temp = (String) arg;
			// System.out.println(temp);
			this.sendMes(temp);
		}
	}

	class updataClients implements Runnable {
		@Override
		public void run() {
			while (true) {
				updataInfo();
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}

		public void updataInfo() {
			ObjectOutputStream oos = null;
			clientInfo.setText("");
			String temp = null;
			for (int i = 0; i < clientList.size(); i++) {
				ConnectClient cc = clientList.get(i);
				temp = cc.getName();
				clientInfo.append(temp + "\n");
			}
		}

	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久蜜桃香蕉精品一区二区三区| 精品视频1区2区3区| 日韩精品一级中文字幕精品视频免费观看 | 国产精品国产三级国产普通话三级 | 亚洲精品ww久久久久久p站| 中文字幕中文字幕一区| 久久一日本道色综合| 欧美v日韩v国产v| 日韩一级精品视频在线观看| 欧美一区二区三区免费大片| 欧美一级xxx| 日韩精品资源二区在线| 精品1区2区在线观看| 久久网站最新地址| 中文字幕乱码久久午夜不卡| 国产精品理论在线观看| 亚洲品质自拍视频| 亚洲成av人片在线观看无码| 日本vs亚洲vs韩国一区三区二区| 日本aⅴ精品一区二区三区| 九色综合狠狠综合久久| 国产aⅴ精品一区二区三区色成熟| 成人av免费网站| 一本大道av伊人久久综合| 欧美浪妇xxxx高跟鞋交| 日韩欧美的一区| 国产精品九色蝌蚪自拍| 亚洲成a人在线观看| 韩国三级在线一区| 91丝袜美女网| 欧美成人video| 亚洲欧美日本韩国| 秋霞电影网一区二区| 国产91丝袜在线18| 欧美精选在线播放| 亚洲国产经典视频| 日韩av高清在线观看| 国产·精品毛片| 欧美日韩午夜精品| 久久精品一区二区三区四区| 亚洲人吸女人奶水| 91在线观看成人| 欧美日韩在线播放三区四区| 国产日韩三级在线| 婷婷综合在线观看| 99久久精品国产毛片| 91精品国产综合久久精品app| 国产精品久久久久久久午夜片| 亚洲第一成人在线| 99久久精品免费看国产| 久久综合av免费| 午夜亚洲福利老司机| 99热这里都是精品| 久久人人爽人人爽| 日韩有码一区二区三区| 色狠狠一区二区| 国产三级一区二区| 久久国产精品露脸对白| 欧美性大战xxxxx久久久| 欧美国产一区视频在线观看| 三级不卡在线观看| 欧美主播一区二区三区| 国产精品视频第一区| 国产制服丝袜一区| 日韩视频免费观看高清完整版在线观看 | 奇米色777欧美一区二区| 91一区二区三区在线播放| 久久久国产综合精品女国产盗摄| 三级在线观看一区二区| 91久久久免费一区二区| 中文字幕一区二区三区精华液| 国产精品99久久久久久有的能看| 91麻豆精品国产91久久久久久久久 | 国产精品久久夜| 国产成人高清在线| 国产亚洲综合色| 国产麻豆精品视频| 久久亚洲二区三区| 国产乱子轮精品视频| 精品国产自在久精品国产| 久久成人羞羞网站| 精品成人一区二区三区四区| 极品少妇一区二区| wwwwww.欧美系列| 国产成人8x视频一区二区| 久久久午夜电影| 风间由美一区二区av101| 中文字幕乱码日本亚洲一区二区| 成人免费毛片a| 亚洲免费在线看| 欧美日韩卡一卡二| 男女激情视频一区| 久久只精品国产| 99精品国产热久久91蜜凸| 亚洲精品欧美专区| 欧美一级日韩不卡播放免费| 国产美女精品在线| 亚洲色图.com| 欧美一区二区免费| 国产99一区视频免费| 一区二区三区欧美视频| 日韩一区二区电影| 国产成人av电影在线观看| 亚洲欧美激情插| 日韩限制级电影在线观看| 懂色av噜噜一区二区三区av| 一区二区三区日本| 久久中文字幕电影| 91久久线看在观草草青青| 日本成人在线网站| 国产精品日韩成人| 91麻豆精品国产91久久久久| 国产高清精品在线| 首页国产欧美久久| 中文字幕欧美日本乱码一线二线| 91精品国产综合久久精品麻豆| 久久精品国产99| 亚洲欧美日韩久久| 欧美xingq一区二区| 色欧美乱欧美15图片| 久久99日本精品| 亚洲三级电影网站| 精品动漫一区二区三区在线观看| 91美女视频网站| 蜜臀精品一区二区三区在线观看 | 国产综合一区二区| 夜夜嗨av一区二区三区中文字幕| 日韩亚洲欧美一区| 欧美日韩综合一区| 91天堂素人约啪| 国产一区二区久久| 久久精品国产亚洲aⅴ| 一区二区三区中文字幕在线观看| 久久一区二区三区四区| 欧美丰满少妇xxxxx高潮对白| aaa欧美色吧激情视频| 国模套图日韩精品一区二区| 视频一区中文字幕| 一区二区三区小说| 亚洲欧美日韩人成在线播放| 国产日产精品1区| 精品国产91洋老外米糕| 777奇米四色成人影色区| 91成人免费在线视频| www.综合网.com| 成人免费av网站| 国产伦理精品不卡| 精品一区二区三区蜜桃| 日本成人超碰在线观看| 亚洲国产一区视频| 亚洲一区二区三区在线| 亚洲精品精品亚洲| 亚洲美女电影在线| 亚洲另类在线一区| 亚洲人成网站色在线观看| 国产精品久久久久久久第一福利 | 亚洲成在人线免费| 亚洲自拍与偷拍| 亚洲一区二区三区中文字幕在线| 中文字幕一区二区三中文字幕| 久久精品一区二区三区不卡| 久久久无码精品亚洲日韩按摩| 久久蜜臀精品av| 欧美激情中文不卡| 国产精品久久免费看| 亚洲精品成人精品456| 日日夜夜精品视频免费| 亚洲午夜精品在线| 日本最新不卡在线| 久久99精品久久久| 国产成人免费视频| 99久久er热在这里只有精品66| 99精品黄色片免费大全| 色国产综合视频| 欧美久久久久久蜜桃| 日韩免费性生活视频播放| 亚洲精品一区二区三区蜜桃下载| 久久久久免费观看| 亚洲三级理论片| 天堂av在线一区| 精品在线观看免费| 99久久久无码国产精品| 在线不卡免费欧美| 久久久91精品国产一区二区三区| 国产精品麻豆99久久久久久| 亚洲欧美影音先锋| 亚洲成人综合网站| 国产精品综合网| 91久久线看在观草草青青| 日韩欧美一级二级三级| 国产精品狼人久久影院观看方式| 一区二区三区久久久| 久久精品国产精品亚洲红杏| av中文字幕亚洲| 日韩三级av在线播放| 亚洲欧洲日韩一区二区三区| 日韩电影免费在线看| 粉嫩av一区二区三区在线播放| 欧美日韩一二三区| 中文字幕欧美国产|