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

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

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

    楊彩的Java博客
    醉里挑燈看劍,夢(mèng)里吹雨聽風(fēng).仗劍獨(dú)走天涯,試問誰與爭鋒!
    posts - 8,comments - 49,trackbacks - 0

    //QQ客戶端

    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;

    public class yc extends JFrame
    {
    ?public static JLabel jl1,jl2;
    ?public static TextArea ta1,ta2;
    ?public static JButton jb1,jb2;
    ?public static Container cp1;
    ? static Socket svr;
    ?public static PrintWriter out;
    ?
    ?
    ?public static void main(String arg[])
    ?{
    ??JFrame jf=new JFrame("與小新聊天--VIP???????????? 客戶端");
    ??jf.setSize(500,450);
    ??jf.setResizable(false);
    ??jf.locate(100,100);
    //??cp1=getContentPane();
    ??jl1=new JLabel("連接中....");
    ??ta1=new TextArea();
    ??ta2=new TextArea();
    ??jb1=new JButton("發(fā)送");
    ??jb1.addActionListener(new Listener());
    ??jb2=new JButton("清空");
    ??jb2.addActionListener(new Listener());
    ??jf.getContentPane().setLayout(new FlowLayout());
    ??jf.getContentPane().add(jl1);
    ???jf.getContentPane().add(ta1);
    ???jf.getContentPane().add(ta2);
    ???jf.getContentPane().add(jb1);
    ???jf.getContentPane().add(jb2);
    ???
    ??jf.setVisible(true);
    ??try
    ??{
    ???target2 outmsg2=new target2();
    ???Thread outthread2=new Thread(outmsg2);
    ???outthread2.start();
    ???QQ();

    ???
    ???
    ??}
    ??catch(Exception e)
    ??{
    ???
    ??}
    ??
    ??
    ?}
    ?
    static void QQ()throws Exception
    {
    ? System.out.println("正在連接服務(wù)器,請(qǐng)稍候...");
    ? //與指定地址的服務(wù)器相連接
    ? svr=new Socket("127.0.0.1",3300);//要連接遠(yuǎn)程主機(jī)請(qǐng)?zhí)領(lǐng)P
    ?//svr=new Socket(InetAddress.getLocalHost(),3300)
    ? jl1.setText("與"+svr.getInetAddress()+"連接成功!請(qǐng)輸出要傳送的信息...");

    ?}
    ?
    ?
    }

    ?


    ?class Listener implements ActionListener{
    ??public void actionPerformed(ActionEvent e)
    ??{
    ???
    ??? if(e.getSource()==yc.jb2)
    ???? {
    ???? ?? yc.ta1.setText("");
    ???? }
    ????
    ??? else
    ??? {
    ??? ?try
    ??? {
    ??? ?
    ??? ?yc.out=new PrintWriter(yc.svr.getOutputStream());
    ??? ?yc.out.println(yc.ta2.getText());
    ??? ?yc.out.flush();
    ??? ?yc.ta1.append("[自己]說:\n"+yc.ta2.getText()+"\n");
    ??? ?yc.ta2.setText("");
    ?
    ???
    ??? }
    ???? catch(Exception ee)
    ???? {
    ???? ?
    ???? }
    ??? ?
    ??? }
    ???
    ????

    ????
    ??}
    ?}
    ?
    ?
    ?
    ?
    class target2 implements Runnable
    {
    ?public void run()
    ?{
    ???
    ??? while(true)
    ??? {
    ??? ?
    ???try
    ???{
    ????
    ??? BufferedReader in=new BufferedReader(new InputStreamReader(yc.svr.getInputStream()));
    ? ??? String str=in.readLine();
    ?? ??? str="[服務(wù)端"+yc.svr.getInetAddress()+"]說:\n"+str;
    ??? ?? yc.ta1.append(str+"\n");
    ???}
    ???
    ???catch(Exception ee)
    ???{
    ????;
    ???}?
    ??? ?
    ?? ??
    ?? ??
    ?? ??}
    ?}
    }
    ?

    ?

    ?

    ————————————————————————————————

    ?

    ?

    //QQ服務(wù)端

    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;

    public class ycserver extends JFrame
    {
    ?public static JLabel jl1;
    ?public static TextArea ta1,ta2;
    ?public static JButton jb1,jb2;
    ?public static Container cp1;
    ?public static ServerSocket svr;?
    ?public static Socket clt;
    ?public static Thread thread;
    ?public static int i=0;
    ?


    ??
    ?public static void main(String arg[])
    ?{
    ??JFrame jf=new JFrame("與楊彩聊天--VIP??????????? 服務(wù)端");
    ??jf.setSize(500,450);
    ??jf.locate(200,200);
    ??jf.setResizable(false);
    ??ta1=new TextArea();
    ??ta2=new TextArea();
    ??jb1=new JButton("發(fā)送");
    ??jb2=new JButton("清空");
    ??jl1=new JLabel("等待連接");
    ??jb1.addActionListener(new jb1Listener());
    ??jb2.addActionListener(new jb1Listener());
    ??jf.getContentPane().setLayout(new FlowLayout());
    ??jf.getContentPane().add(jl1);
    ???jf.getContentPane().add(ta1);
    ???jf.getContentPane().add(ta2);
    ???jf.getContentPane().add(jb1);
    ???jf.getContentPane().add(jb2);
    ???
    ??jf.setVisible(true);
    ??try
    ??{
    ???target outmsg=new target();
    ???Thread outthread=new Thread(outmsg);
    ???outthread.start();
    ???
    ???wait wait1=new wait();
    ???Thread waitthread=new Thread(wait1);
    ???waitthread.start();
    ???
    ???QQ();

    ???

    ??}
    ??catch(Exception e)
    ??{
    ???
    ??}
    ??
    ??
    ?}
    ?
    ?
    static void QQ()throws Exception
    {/*
    ?//建立服務(wù)器套節(jié)字
    ? svr=new ServerSocket(3300);
    ? System.out.println("等待連接....");
    ?//等待客戶機(jī)接入
    ?? clt=svr.accept();
    ??? i++;
    ??? ta1.setText(i+"");
    ?//獲得客戶IP地址
    ? System.out.println("連接請(qǐng)求來自:"+clt.getInetAddress());
    ? jl1.setText("連接請(qǐng)求來自:"+clt.getInetAddress());
    ? //建立I/O流
    ? */

    ?? }
    ??
    ?}
    ?
    ?


    ?class jb1Listener implements ActionListener
    ?{
    ??public void actionPerformed(ActionEvent e)
    ??{
    ???if(e.getSource()==ycserver.jb2)
    ???{
    ????ycserver.ta1.setText("");
    ???}
    ???
    ???else
    ???{
    ???? try
    ??? {
    ??? ??????
    ?? ?PrintWriter out=new PrintWriter(ycserver.clt.getOutputStream());
    ?? ?out.println(ycserver.ta2.getText());
    ?? ?out.flush();
    ??? ?ycserver.ta1.append("[自己]說:\n"+ycserver.ta2.getText()+"\n");
    ??? ?ycserver.ta2.setText("");
    ?
    ???
    ??? }
    ???? catch(Exception ee)
    ???? {
    ???? ?
    ???? }
    ???}
    ??
    ??}
    ?}

    ?

    class target implements Runnable
    {
    ?public void run()
    ?{
    ???
    ??? while(true)
    ??? {
    ??? ?
    ???try
    ???{????
    ??? BufferedReader in=new BufferedReader(new InputStreamReader(ycserver.clt.getInputStream()));
    ? ??? String str=in.readLine();
    ?? ??? str="[客戶端在"+ycserver.clt.getInetAddress()+"]說:\n"+str;
    ??? ?? ycserver.ta1.append(str+"\n");
    ???}
    ???
    ???catch(Exception ee)
    ???{
    ????;
    ???}?
    ??? ?
    ?? ??
    ?? ??
    ?? ??}
    ?}
    }

    ?

    class wait implements Runnable
    {
    ?public void run()
    ?{
    ???
    ??? while(true)
    ??? {
    ??? ?
    ???try
    ???{????
    ??? //建立服務(wù)器套節(jié)字
    ? ycserver.svr=new ServerSocket(3300);
    ? System.out.println("等待連接....");
    ?//等待客戶機(jī)接入
    ?? ycserver.clt=ycserver.svr.accept();
    ??? ycserver.i+=2;
    ??? ycserver.ta1.setText(ycserver.i+"");
    ?//獲得客戶IP地址
    ? System.out.println("連接請(qǐng)求來自:"+ycserver.clt.getInetAddress());
    ? ycserver.jl1.setText("連接請(qǐng)求來自:"+ycserver.clt.getInetAddress());
    ? //建立I/O流
    ???}
    ???
    ???catch(Exception ee)
    ???{
    ????;
    ???}?
    ??? ?
    ?? ??
    ?? ??
    ?? ??}
    ?}
    }

    ?

    ?

    ?

    ?
    ?
    ?
    ?
    ?
    ?
    源碼下載:
    http://www.tkk7.com/Files/yangcai/qq.rar
    posted on 2006-12-08 07:28 楊彩 閱讀(2702) 評(píng)論(7)  編輯  收藏 所屬分類: 我的Java程序

    FeedBack:
    # re: Tcp通信實(shí)現(xiàn)兩機(jī)互相通信
    2006-12-08 09:22 | itVincent
    不錯(cuò)的練習(xí),java實(shí)現(xiàn)socket挺方便的  回復(fù)  更多評(píng)論
      
    # re: Tcp通信實(shí)現(xiàn)兩機(jī)互相通信
    2006-12-08 20:50 | 風(fēng)
    寫得不錯(cuò) 前不久我也用socket在寫聊天室,不過你這樣的寫法與我的寫法

    都只能是實(shí)現(xiàn)聊天室功能,如果要實(shí)現(xiàn)單對(duì)單可能還要加上一些判斷條件. 后來

    我用UDP去完成單對(duì)單功能..哎 太慚愧了,線程沒學(xué)好,一直到現(xiàn)在都還沒完成.

    繼續(xù)努力同志~!  回復(fù)  更多評(píng)論
      
    # re: Tcp通信實(shí)現(xiàn)兩機(jī)互相通信
    2006-12-09 08:30 | lix
    you can use broadcasting mode to write, so that you dont have to specify a server for your chating "network" ;)  回復(fù)  更多評(píng)論
      
    # re: Tcp通信實(shí)現(xiàn)兩機(jī)互相通信
    2006-12-11 13:16 | joy[匿名]
    不支持nat把~  回復(fù)  更多評(píng)論
      
    # re: Tcp通信實(shí)現(xiàn)兩機(jī)互相通信
    2007-01-08 13:53 | while
    # re: Tcp通信實(shí)現(xiàn)兩機(jī)互相通信[未登錄]
    2007-12-19 16:15 | 哈哈
    都不好意思說自己是新手了,不過還是要是說聲 謝謝!  回復(fù)  更多評(píng)論
      
    # re: Tcp通信實(shí)現(xiàn)兩機(jī)互相通信
    2008-12-17 11:03 | 提拉米蘇
    你很榜 我來支持你了  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲av高清在线观看一区二区 | 国产av无码专区亚洲av毛片搜| 亚洲乱亚洲乱妇无码麻豆| 亚洲韩国—中文字幕| 亚洲国产高清国产拍精品| 亚洲一区免费观看| 精品国产亚洲男女在线线电影| 亚洲av中文无码乱人伦在线r▽ | 亚洲精品天天影视综合网| 毛片大全免费观看| 亚洲精品国产免费| 免费观看无遮挡www的视频| 亚洲男人的天堂在线播放| 暖暖日本免费在线视频| 亚洲中文字幕无码爆乳app| 亚洲一区二区三区免费在线观看| 亚洲色欲久久久综合网| 99久久人妻精品免费二区| 亚洲久本草在线中文字幕| 日本xxwwxxww在线视频免费| 久久久精品午夜免费不卡| 亚洲AV无码久久精品色欲| 日本久久久免费高清| 免费观看黄色的网站| 999zyz**站免费毛片| 亚洲欧洲日韩国产综合在线二区| 久草视频在线免费看| 亚洲精品白色在线发布| 亚洲VA综合VA国产产VA中| 精品多毛少妇人妻AV免费久久 | 在线亚洲精品自拍| 日韩精品极品视频在线观看免费| 亚洲日韩精品无码专区网址 | 亚洲精品乱码久久久久久不卡 | 亚洲av午夜国产精品无码中文字 | 亚洲一卡2卡3卡4卡5卡6卡| 伊人久久精品亚洲午夜| 国产伦一区二区三区免费| 久久国产福利免费| 日韩色日韩视频亚洲网站| 亚洲AV午夜福利精品一区二区|