<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    點對點聊天簡陋版

    CharServer.java
    import?java.net.*;
    import?java.util.*;
    import?java.io.*;

    public?class?ChatServer
    {
    ????ServerSocket?server?
    =?null;
    ????ArrayList
    <ClientConn>?clients?=?new?ArrayList<ClientConn>();
    ????
    ????
    public?ChatServer(int?port)?throws?Exception
    ????
    {
    ????????server?
    =?new?ServerSocket(port);
    ????}

    ????
    ????
    public?void?startServer()?throws?Exception
    ????
    {
    ????????
    while(true)
    ????????
    {
    ????????????Socket?s?
    =?server.accept();
    ????????????clients.add(?
    new?ClientConn(s)?);
    ????????}

    ????}

    ????
    ????
    class?ClientConn?implements?Runnable
    ????
    {
    ????????Socket?s?
    =?null;
    ????????
    public?ClientConn(Socket?s)
    ????????
    {
    ????????????
    this.s?=?s;
    ????????????(
    new?Thread(this)).start();
    ????????}

    ????????
    ????????
    public?void?send(String?str)?throws?IOException
    ????????
    {
    ????????????DataOutputStream?dos?
    =?new?DataOutputStream(s.getOutputStream());
    ????????????dos.writeUTF(str);
    ????????}

    ????????
    ????????
    public?void?run()
    ????????
    {
    ????????????
    try?{
    ????????????????
    ????????????????DataInputStream?dis?
    =?new?DataInputStream(s.getInputStream());
    ????????????????String?str?
    =?dis.readUTF();
    ????????????????
    while(str?!=?null?&&?str.length()?!=0)
    ????????????????
    {
    ????????????????????System.out.println(str);
    ????????????????????
    for(Iterator<ClientConn>?it?=?clients.iterator();?it.hasNext();?)
    ????????????????????
    {
    ????????????????????????ClientConn?cc?
    =?(ClientConn)it.next();
    ????????????????????????
    if(this?!=?cc)????
    ????????????????????????
    {
    ????????????????????????????cc.send(str);
    ????????????????????????}

    ????????????????????}

    ????????????????????str?
    =?dis.readUTF();
    ????????????????}

    ????????????????s.close();
    ????????????????clients.remove(
    this);
    ????????????}
    ?
    ????????????
    catch?(IOException?e)?
    ????????????
    {
    ????????????????System.out.println(
    "client?quit");
    ????????????????
    try?
    ????????????????
    {
    ????????????????????
    if(s?!=?null)
    ????????????????????????s.close();
    ????????????????????clients.remove(
    this);
    ????????????????}
    ?
    ????????????????
    catch?(IOException?ioe)
    ????????????????
    {
    ????????????????????ioe.printStackTrace();
    ????????????????}

    ????????????}

    ????????????
    ????????}

    ????}

    ????
    ????
    public?static?void?main(String[]?args)?throws?Exception
    ????
    {
    ????????ChatServer?cs?
    =?new?ChatServer(6666);?//實例化一個服務器
    ????????cs.startServer();????//啟動服務器
    ????}

    }


    ChatClient.java
    import?java.io.*;
    import?java.net.*;
    import?java.awt.*;
    import?java.awt.event.*;

    public?class?ChatClient?extends?Frame
    {
    ????TextArea?ta?
    =?new?TextArea();
    ????TextField?tf?
    =?new?TextField();
    ????
    public?void?launchFrame()?throws?Exception
    ????
    {
    ????????
    this.add(ta,?BorderLayout.CENTER);
    ????????
    this.add(tf,?BorderLayout.SOUTH);
    ????????tf.addActionListener(
    ????????????
    new?ActionListener()?
    ????????????
    {
    ????????????????
    public?void?actionPerformed(ActionEvent?ae)
    ????????????????
    {
    ????????????????????
    try?{
    ????????????????????????String?sSend?
    =?tf.getText();
    ????????????????????????
    if(sSend.trim().length()?==?0)?return;
    ????????????????????????ChatClient.
    this.send(sSend);
    ????????????????????????tf.setText(
    "");
    ????????????????????????ta.append(sSend?
    +?"\n");
    ????????????????????}

    ????????????????????
    catch?(Exception?e)?{?e.printStackTrace();?}
    ????????????????}

    ????????????}

    ????????????);
    ????????
    ????????setBounds(
    300,300,300,400);
    ????????setVisible(
    true);
    ????????tf.requestFocus();
    ????}

    ????
    ????Socket?s;
    ????
    public?ChatClient()?throws?Exception
    ????
    {
    ????????s?
    =?new?Socket("127.0.0.1",?6666);
    ????????launchFrame();
    ????????(
    new?Thread(new?ReceiveThread(s))).start();
    ????}

    ????
    ????
    public?void?send(String?str)?throws?Exception
    ????
    {
    ????????DataOutputStream?dos?
    =?new?DataOutputStream(s.getOutputStream());
    ????????dos.writeUTF(str);
    ????}

    ????
    ????
    public?void?disconnect()?throws?Exception
    ????
    {
    ????????s.close();
    ????}

    ????
    ????
    public?static?void?main(String[]?args)?throws?Exception
    ????
    {
    ????????BufferedReader?br?
    =?new?BufferedReader?(
    ????????????????????????????????
    new?InputStreamReader(System.in));
    ????????ChatClient?cc?
    =?new?ChatClient();
    ????????String?str?
    =?br.readLine();
    ????????
    while(str?!=?null?&&?str.length()?!=?0)
    ????????
    {
    ????????????cc.send(str);
    ????????????str?
    =?br.readLine();
    ????????}

    ????????cc.disconnect();
    ????}

    ????
    ????
    class?ReceiveThread?implements?Runnable
    ????
    {
    ????????
    private?Socket?s;

    ????????
    public?ReceiveThread(Socket?s)?{
    ????????????
    this.s?=?s;
    ????????}


    ????????
    public?void?run()
    ????????
    {
    ????????????
    if(s?==?null)?return;
    ????????????
    try?{
    ????????????????DataInputStream?dis?
    =?new?DataInputStream(s.getInputStream());
    ????????????????String?str?
    =?dis.readUTF();
    ????????????????
    while?(str?!=?null?&&?str.length()?!=?0)
    ????????????????
    {
    ????????????????????ChatClient.
    this.ta.append(str?+?"\n");
    ????????????????????str?
    =?dis.readUTF();
    ????????????????}

    ????????????}
    ?
    ????????????
    catch?(Exception?e)
    ????????????
    {
    ????????????????e.printStackTrace();
    ????????????}

    ????????????
    ????????}

    ????}

    }

    posted on 2008-09-15 01:30 nonels 閱讀(620) 評論(2)  編輯  收藏 所屬分類: J2SE

    評論

    # re: 點對點聊天簡陋版 2015-12-21 23:54 更多時候該

    來個人更好的更好  回復  更多評論   

    # re: 點對點聊天簡陋版 2015-12-21 23:55 更多時候該

    @更多時候該
    543543   回復  更多評論   

    <2015年12月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類(16)

    隨筆檔案(16)

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产精品人久久电影| 亚洲人妻av伦理| 久久久久亚洲AV无码专区首JN| 国产在线观看免费av站| 亚洲一本大道无码av天堂| 老司机亚洲精品影院在线观看| 国产精品深夜福利免费观看| 亚洲免费综合色在线视频| 情侣视频精品免费的国产| 婷婷亚洲综合一区二区| 亚洲国产综合人成综合网站| 精品国产免费一区二区三区| 亚洲另类激情综合偷自拍图| 亚洲一区免费观看| 亚洲国产日韩在线| 成年女人毛片免费视频| 精品亚洲福利一区二区| 久久亚洲2019中文字幕| 亚洲精品免费观看| 亚洲已满18点击进入在线观看| 黄a大片av永久免费| 一级做受视频免费是看美女| 亚洲av无码潮喷在线观看| 最近免费中文字幕高清大全| 四虎必出精品亚洲高清| 又黄又爽的视频免费看| 韩国免费a级作爱片无码| 亚洲综合激情六月婷婷在线观看 | 91免费福利精品国产| 亚洲成人激情小说| 亚洲天堂中文字幕在线| 亚洲免费福利视频| 偷自拍亚洲视频在线观看99| 久久精品国产精品亚洲蜜月| 成人免费在线观看网站| 精品一区二区三区免费观看 | 亚洲成a人片在线不卡一二三区 | 曰批视频免费30分钟成人| 国产大陆亚洲精品国产| 亚洲国产精品国自产拍电影| 精品国产精品久久一区免费式|