这么长!你也不把异常列出来!
调试的时候扑捉并显示一些异常吧!socketserver最好在一个单独的线程舰听连接!!

解决方案 »

  1.   

    Exception occurred during event dispatching:
    java.lang.NullPointerException:
     at DrawWindow.senddata<ServerWindow.java:91>
     at MouseAdpt.mouseClicked<ServerWindow.java:91>
     at java.awt.Component.processMouseEvevt<Component.java:3129>
     at java.awt.Component.processEvevt<Component.java:2965>
     at java.awt.Component.dispatchEventImpl<Compiled Code>
     at java.awt.Component.dispatchEvent<Compiled Code>
     at java.awt.EventQueue.dispatchEvent<Compiled Code>
     at java.awt.EventDispatchThread.run<EventDispatchThread.java:68>
      

  2.   

    Exception occurred during event dispatching:
    java.lang.NullPointerException:
            at DrawWindow.senddata(ServerWindow.java:91)
            at MouseAdpt.mouseClicked(ServerWindow.java:193)
            at java.awt.Component.processMouseEvent(Component.java:3129)
            at java.awt.Component.processEvent(Component.java:2965)
            at java.awt.Component.dispatchEventImpl(Compiled Code)
            at java.awt.Component.dispatchEvent(Compiled Code)
            at java.awt.EventQueue.dispatchEvent(Compiled Code)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:68)
      

  3.   

    Exception occurred during event dispatching:
    java.lang.NullPointerException:
            at DrawWindow.senddata(ServerWindow.java:91)
            at MouseAdpt.mouseClicked(ServerWindow.java:193)
            at java.awt.Component.processMouseEvent(Component.java:3129)
            at java.awt.Component.processEvent(Component.java:2965)
            at java.awt.Component.dispatchEventImpl(Compiled Code)
            at java.awt.Component.dispatchEvent(Compiled Code)
            at java.awt.EventQueue.dispatchEvent(Compiled Code)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:68)
      

  4.   

    以上两位真是的,copy下来自己调试一下,不就知道什么异常了。我尽力看看,不能解决就向你们学习了!!
      

  5.   

    为什么不是
    catch(IOException ex){}
      

  6.   

    这是将 Exception 改为 IOException 后的异常!
      

  7.   

    各位辛苦了,还有几点我想补充:
     1。这个程序本来要传两个数据,即postion矩阵中的行和列值,
        但由于连接不上,所以我先将yy=10,之传yx的值。
     2。…………我也没什么说的了
        总觉得哪里不对,可是小弟确实水平有限,实在看不出来了。
      

  8.   

     void connect()throws Exception{
               ss=new Socket("192.168.0.55",8888);
         try{
     while (true){
       is=new DataInputStream(ss.getInputStream());
       os=new DataOutputStream(ss.getOutputStream());
                         myThread mt=new myThread(this);
       mt.start();
              }
     
         }catch(Exception e){
       }
         return true;
            }return true 而你的返回类型是void
      

  9.   

    sorry,这是笔误,你改回boolean或去掉return 后也一样传不出去。
    我的程序编译没错误,上面的错误可能是我在调试时发的帖子,没改正吧!
      

  10.   

    你程序设计逻辑出错了。已改好。
    //server:import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;public class ServerWindow extends Frame{
      DrawWindow d=new DrawWindow();
    TextField c=new TextField("fuwuqi"); ServerWindow(){
            super("服务器");
    setLayout(new FlowLayout());
    add(d);
    add(c);
    d.requestFocus();
    setSize(600,500);
            setVisible(true);
    addWindowListener(new closeWin());
            try{
     d.connect(); }catch (Exception e){}
    }    public static void main(String[] args){
            new ServerWindow();  }
    }
    //************************************************
    class DrawWindow extends Canvas{
     int postion[][]=new int[20][20];
     public int yx=10,yy=10;
     DataInputStream dis;
     DataOutputStream dos;
     ServerSocket s;
     Socket ss;     //构造函数
     DrawWindow(){
            addMouseListener(new MouseAdpt(this));
        setSize(440,440);
    setBackground(Color.orange);
            setVisible(true);
     }//我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????
             public void connect()throws Exception
             {
                 System.out.println("开始鉴听");
                 s=new ServerSocket(18888);
                 ss=s.accept();
                 System.out.println("接收到");             try
                 {
                     //while (true)这儿出错了!!!!!!!!!!!
                     { dis=new DataInputStream(ss.getInputStream());
                        dos=new DataOutputStream(ss.getOutputStream());
                        Thread.sleep(300);
                         myThread mt=new myThread(this);
                         mt.start();
                     }
                     }catch(Exception e){}         }
    //?????????????????????????????????????
        public void senddata(int x){
      try{
       dos.writeInt(x);
       dos.flush();
           }catch (Exception e){}
    }
        public int getdata(){
      int t=0;
      try
      {t=dis.readInt();
      }catch (Exception e){}
      return t;
    }
     //画棋盘和棋子
     public void paint(Graphics g){
            int i,j,x,y;
              //画棋盘格
      for (i=1;i<=19;i++)
                 for (j=1;j<=19;j++){
      g.setColor(Color.black);
      g.drawRect(20*i,20*j,20,20);    }
              //画棋子
      for (x=1;x<=20;x++)
                 for (y=1;y<=20;y++){
        if (postion[x-1][y-1]==1){
           g.setColor(Color.black);
           g.fillOval(20*x-10,20*y-10,20,20);
                     }
    if (postion[x-1][y-1]==2){
           g.setColor(Color.white);
           g.fillOval(20*x-10,20*y-10,20,20);
                     }
                   }
                }
    }
    //***********************************************
    class myThread extends Thread{
    DrawWindow pp;
    myThread(DrawWindow p){
        pp=p;
      }
    public void run()
        {
            while(true)
            {
                pp.yx=pp.getdata();//读客户端的坐标            if (pp.postion[pp.yx-1][pp.yy-1]==0)//如果该位置无棋子,落白子
                {
                    pp.postion[pp.yx-1][pp.yy-1]=2;
                    pp.repaint(0,0,500,500);
                }
            }
     }
    };
    //*********************************************
    //*********************************************
    class closeWin extends WindowAdapter{ public void windowClosing(WindowEvent e){
           Frame frm=(Frame)(e.getSource());
           frm.dispose();
           System.exit(0);
          }
        }
    //**************************************
    class MouseAdpt extends MouseAdapter{
      DrawWindow pp;   MouseAdpt(DrawWindow p){
        pp=p;
      }   public void mouseClicked(MouseEvent e){
       int x=0,y=0;
     //将鼠标点击的坐标赋给 x,y
     if (e.getX()%20<10 && e.getY()%20<10){
       x=(e.getX()-e.getX()%20)/20;
           y=(e.getY()-e.getY()%20)/20;
       }
             else if (e.getX()%20>=10 && e.getY()%20>=10){
       x=(e.getX()+e.getX()%20)/20;
           y=(e.getY()+e.getY()%20)/20;
       }
             else if (e.getX()%20>=10 && e.getY()%20<10){
       x=(e.getX()+e.getX()%20)/20;
           y=(e.getY()-e.getY()%20)/20;
       }
             else if (e.getX()%20<10 && e.getY()%20>=10){
       x=(e.getX()-e.getX()%20)/20;
           y=(e.getY()+e.getY()%20)/20;
       }
             //如果点在棋盘内
     if (x>0&x<=20&y>0&y<=20){
     //将棋子标上黑色,重画棋盘  //如果没有棋子,落黑子
     if (pp.postion[x-1][y-1]==0){
     pp.postion[x-1][y-1]=1;
     pp.repaint(0,0,500,500);
     pp.senddata(x);
       }
       }
      }
    }
      

  11.   

    把所有建立连接的语句放在try里面
      

  12.   

    //socket
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.applet.*;//******************************************class SocketWindow extends Frame
    {
        DrawWindow d=new DrawWindow();
        TextField c=new TextField("fuwuqi");    public SocketWindow()
        {
            init();
        }
        public void init()
        {        setLayout(new FlowLayout());
            add(d);
            add(c);
            d.requestFocus();
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
            try{
                d.connect();
                }catch (Exception e){}    }}
    //************************************************
    class DrawWindow extends Canvas
    {
        public int mx,my,yx,yy=10;
        public final static int PORT=8888;
        int postion[][]=new int[20][20];
        DataInputStream is;
        DataOutputStream os;
        Socket ss;    DrawWindow()
        {
            addMouseListener(new MouseAdpt(this));
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
        }
        //我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????????????????????????
        void connect()throws Exception
        {
            ss=new Socket("192.168.0.151",18888);
            if(ss != null)
            {
                System.out.println("成功连接");
                 is=new DataInputStream(ss.getInputStream());
                 os=new DataOutputStream(ss.getOutputStream());
                try
                {
                   // while (true) //while (true)这儿出错了!!!!!!!!!!!
                    {
                        Thread.sleep(300);
                        myThread mt=new myThread(this);
                        mt.start();
                    }            }catch(Exception e)
                {
                }
            }
            return;
        }
    //?????????????????????????????????????????????????????????????
        public int readdata(){
            int t=0;
            try{
                t=is.readInt();
                }catch (Exception e){}
                return t;
        }    public void writedata(int t)
        {
            try
            {
                os.writeInt(t);
            // os.flush();
                System.out.println("写数据");
            }
            catch (Exception e){}
        }    public void paint(Graphics g){
            int i,j,x,y;
            for (i=1;i<=19;i++)
                for (j=1;j<=19;j++){
            g.setColor(Color.black);
            g.drawRect(20*i,20*j,20,20);
                }
                for (x=1;x<=20;x++)
                    for (y=1;y<=20;y++){
                if (postion[x-1][y-1]==2){
                    g.setColor(Color.white);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                if (postion[x-1][y-1]==1){
                    g.setColor(Color.black);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                    }
        }
    }
    //*********************
    class myThread extends Thread
    {
        DrawWindow pp;    myThread(DrawWindow p)
        {
            pp=p;
        }
        public void run()
        {
            while(true)
            {
                pp.yx=pp.readdata();//读服务器端的坐标
                if (pp.postion[pp.yx-1][pp.yy-1]==0)//如果该位置无棋子,落黑子
                {
                    pp.postion[pp.yx-1][pp.yy-1]=1;
                    pp.repaint(0,0,500,500);
                }
            }
        }
    }//***********************************
    class MouseAdpt extends MouseAdapter
    {
        DrawWindow pp;
        MouseAdpt(DrawWindow p)
        {
            pp=p;
        }
        public void mouseClicked(MouseEvent e){
            int x=0,y=0;
            if (e.getX()%20<10 && e.getY()%20<10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20>=10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20<10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20<10 && e.getY()%20>=10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }        if (x>0&x<=20&y>0&y<=20){
                if (pp.postion[x-1][y-1]==0){
                    pp.repaint(0,0,500,500);
                    pp.postion[x-1][y-1]=2;
                }
                System.out.println("准备发送");
                pp.writedata(x);        }
        }
        public static void main(String[] args){
            new SocketWindow();    }
    }有问题发短信,欢迎加分:(
      

  13.   

    ping 192.168.0.55
    看看网络是不是通的.
    netstat -a
    看看没有没开8888telnet 192.168.0.55 8888
    看看有没有反应.....
      

  14.   

    //socket
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.applet.*;//******************************************class SocketWindow extends Frame
    {
        DrawWindow d=new DrawWindow();
        TextField c=new TextField("fuwuqi");    public SocketWindow()
        {
            init();
        }
        public void init()
        {        setLayout(new FlowLayout());
            add(d);
            add(c);
            d.requestFocus();
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
            try{
                d.connect();
                }catch (Exception e){}    }}
    //************************************************
    class DrawWindow extends Canvas
    {
        public int mx,my,yx,yy=10;
        public final static int PORT=8888;
        int postion[][]=new int[20][20];
        DataInputStream is;
        DataOutputStream os;
        Socket ss;    DrawWindow()
        {
            addMouseListener(new MouseAdpt(this));
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
        }
        //我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????????????????????????
        void connect()throws Exception
        {
            ss=new Socket("192.168.0.151",18888);
            if(ss != null)
            {
                System.out.println("成功连接");
                 is=new DataInputStream(ss.getInputStream());
                 os=new DataOutputStream(ss.getOutputStream());
                try
                {
                   // while (true) //while (true)这儿出错了!!!!!!!!!!!
                    {
                        Thread.sleep(300);
                        myThread mt=new myThread(this);
                        mt.start();
                    }            }catch(Exception e)
                {
                }
            }
            return;
        }
    //?????????????????????????????????????????????????????????????
        public int readdata(){
            int t=0;
            try{
                t=is.readInt();
                }catch (Exception e){}
                return t;
        }    public void writedata(int t)
        {
            try
            {
                os.writeInt(t);
            // os.flush();
                System.out.println("写数据");
            }
            catch (Exception e){}
        }    public void paint(Graphics g){
            int i,j,x,y;
            for (i=1;i<=19;i++)
                for (j=1;j<=19;j++){
            g.setColor(Color.black);
            g.drawRect(20*i,20*j,20,20);
                }
                for (x=1;x<=20;x++)
                    for (y=1;y<=20;y++){
                if (postion[x-1][y-1]==2){
                    g.setColor(Color.white);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                if (postion[x-1][y-1]==1){
                    g.setColor(Color.black);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                    }
        }
    }
    //*********************
    class myThread extends Thread
    {
        DrawWindow pp;    myThread(DrawWindow p)
        {
            pp=p;
        }
        public void run()
        {
            while(true)
            {
                pp.yx=pp.readdata();//读服务器端的坐标
                if (pp.postion[pp.yx-1][pp.yy-1]==0)//如果该位置无棋子,落黑子
                {
                    pp.postion[pp.yx-1][pp.yy-1]=1;
                    pp.repaint(0,0,500,500);
                }
            }
        }
    }//***********************************
    class MouseAdpt extends MouseAdapter
    {
        DrawWindow pp;
        MouseAdpt(DrawWindow p)
        {
            pp=p;
        }
        public void mouseClicked(MouseEvent e){
            int x=0,y=0;
            if (e.getX()%20<10 && e.getY()%20<10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20>=10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20<10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20<10 && e.getY()%20>=10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }        if (x>0&x<=20&y>0&y<=20){
                if (pp.postion[x-1][y-1]==0){
                    pp.repaint(0,0,500,500);
                    pp.postion[x-1][y-1]=2;
                }
                System.out.println("准备发送");
                pp.writedata(x);        }
        }
        public static void main(String[] args){
            new SocketWindow();    }
    }
    我把客户端改applet为Frame,好测试。
    有问题发短信,欢迎加分:(
      

  15.   

    //我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????
      public void connect()throws Exception{
       s=new ServerSocket(8888);
       ss=s.accept();
         try{
    while (true){
     dis=new DataInputStream(ss.getInputStream());
       dos=new DataOutputStream(ss.getOutputStream());  
                        myThread mt=new myThread(this);
       mt.start();
     }
         }catch(Exception e){}

    }
    觉得有问题的地方一定要把异常打出来,最差的就是catch异常后什么都不干,纵容异常!
      

  16.   

    //socket
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.applet.*;//******************************************class SocketWindow extends Frame
    {
        DrawWindow d=new DrawWindow();
        TextField c=new TextField("fuwuqi");    public SocketWindow()
        {
            init();
        }
        public void init()
        {        setLayout(new FlowLayout());
            add(d);
            add(c);
            d.requestFocus();
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
            try{
                d.connect();
                }catch (Exception e){}    }}
    //************************************************
    class DrawWindow extends Canvas
    {
        public int mx,my,yx,yy=10;
        public final static int PORT=8888;
        int postion[][]=new int[20][20];
        DataInputStream is;
        DataOutputStream os;
        Socket ss;    DrawWindow()
        {
            addMouseListener(new MouseAdpt(this));
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
        }
        //我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????????????????????????
        void connect()throws Exception
        {
            ss=new Socket("192.168.0.151",18888);
            if(ss != null)
            {
                System.out.println("成功连接");
                 is=new DataInputStream(ss.getInputStream());
                 os=new DataOutputStream(ss.getOutputStream());
                try
                {
                   // while (true) //while (true)这儿出错了!!!!!!!!!!!
                    {
                        Thread.sleep(300);
                        myThread mt=new myThread(this);
                        mt.start();
                    }            }catch(Exception e)
                {
                }
            }
            return;
        }
    //?????????????????????????????????????????????????????????????
        public int readdata(){
            int t=0;
            try{
                t=is.readInt();
                }catch (Exception e){}
                return t;
        }    public void writedata(int t)
        {
            try
            {
                os.writeInt(t);
            // os.flush();
                System.out.println("写数据");
            }
            catch (Exception e){}
        }    public void paint(Graphics g){
            int i,j,x,y;
            for (i=1;i<=19;i++)
                for (j=1;j<=19;j++){
            g.setColor(Color.black);
            g.drawRect(20*i,20*j,20,20);
                }
                for (x=1;x<=20;x++)
                    for (y=1;y<=20;y++){
                if (postion[x-1][y-1]==2){
                    g.setColor(Color.white);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                if (postion[x-1][y-1]==1){
                    g.setColor(Color.black);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                    }
        }
    }
    //*********************
    class myThread extends Thread
    {
        DrawWindow pp;    myThread(DrawWindow p)
        {
            pp=p;
        }
        public void run()
        {
            while(true)
            {
                pp.yx=pp.readdata();//读服务器端的坐标
                if (pp.postion[pp.yx-1][pp.yy-1]==0)//如果该位置无棋子,落黑子
                {
                    pp.postion[pp.yx-1][pp.yy-1]=1;
                    pp.repaint(0,0,500,500);
                }
            }
        }
    }//***********************************
    class MouseAdpt extends MouseAdapter
    {
        DrawWindow pp;
        MouseAdpt(DrawWindow p)
        {
            pp=p;
        }
        public void mouseClicked(MouseEvent e){
            int x=0,y=0;
            if (e.getX()%20<10 && e.getY()%20<10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20>=10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20<10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20<10 && e.getY()%20>=10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }        if (x>0&x<=20&y>0&y<=20){
                if (pp.postion[x-1][y-1]==0){
                    pp.repaint(0,0,500,500);
                    pp.postion[x-1][y-1]=2;
                }
                System.out.println("准备发送");
                pp.writedata(x);        }
        }
        public static void main(String[] args){
            new SocketWindow();    }
    }
    我把客户端改applet为Frame,好测试。
    有问题发短信,欢迎加分:(
      

  17.   

    //socket
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.applet.*;//******************************************class SocketWindow extends Frame
    {
        DrawWindow d=new DrawWindow();
        TextField c=new TextField("fuwuqi");    public SocketWindow()
        {
            init();
        }
        public void init()
        {        setLayout(new FlowLayout());
            add(d);
            add(c);
            d.requestFocus();
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
            try{
                d.connect();
                }catch (Exception e){}    }}
    //************************************************
    class DrawWindow extends Canvas
    {
        public int mx,my,yx,yy=10;
        public final static int PORT=8888;
        int postion[][]=new int[20][20];
        DataInputStream is;
        DataOutputStream os;
        Socket ss;    DrawWindow()
        {
            addMouseListener(new MouseAdpt(this));
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
        }
        //我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????????????????????????
        void connect()throws Exception
        {
            ss=new Socket("192.168.0.151",18888);
            if(ss != null)
            {
                System.out.println("成功连接");
                 is=new DataInputStream(ss.getInputStream());
                 os=new DataOutputStream(ss.getOutputStream());
                try
                {
                   // while (true) //while (true)这儿出错了!!!!!!!!!!!
                    {
                        Thread.sleep(300);
                        myThread mt=new myThread(this);
                        mt.start();
                    }            }catch(Exception e)
                {
                }
            }
            return;
        }
    //?????????????????????????????????????????????????????????????
        public int readdata(){
            int t=0;
            try{
                t=is.readInt();
                }catch (Exception e){}
                return t;
        }    public void writedata(int t)
        {
            try
            {
                os.writeInt(t);
            // os.flush();
                System.out.println("写数据");
            }
            catch (Exception e){}
        }    public void paint(Graphics g){
            int i,j,x,y;
            for (i=1;i<=19;i++)
                for (j=1;j<=19;j++){
            g.setColor(Color.black);
            g.drawRect(20*i,20*j,20,20);
                }
                for (x=1;x<=20;x++)
                    for (y=1;y<=20;y++){
                if (postion[x-1][y-1]==2){
                    g.setColor(Color.white);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                if (postion[x-1][y-1]==1){
                    g.setColor(Color.black);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                    }
        }
    }
    //*********************
    class myThread extends Thread
    {
        DrawWindow pp;    myThread(DrawWindow p)
        {
            pp=p;
        }
        public void run()
        {
            while(true)
            {
                pp.yx=pp.readdata();//读服务器端的坐标
                if (pp.postion[pp.yx-1][pp.yy-1]==0)//如果该位置无棋子,落黑子
                {
                    pp.postion[pp.yx-1][pp.yy-1]=1;
                    pp.repaint(0,0,500,500);
                }
            }
        }
    }//***********************************
    class MouseAdpt extends MouseAdapter
    {
        DrawWindow pp;
        MouseAdpt(DrawWindow p)
        {
            pp=p;
        }
        public void mouseClicked(MouseEvent e){
            int x=0,y=0;
            if (e.getX()%20<10 && e.getY()%20<10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20>=10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20<10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20<10 && e.getY()%20>=10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }        if (x>0&x<=20&y>0&y<=20){
                if (pp.postion[x-1][y-1]==0){
                    pp.repaint(0,0,500,500);
                    pp.postion[x-1][y-1]=2;
                }
                System.out.println("准备发送");
                pp.writedata(x);        }
        }
        public static void main(String[] args){
            new SocketWindow();    }
    }
    我把客户端改applet为Frame,好测试。
    有问题发短信,欢迎加分:(
      

  18.   

    //socket
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.applet.*;//******************************************class SocketWindow extends Frame
    {
        DrawWindow d=new DrawWindow();
        TextField c=new TextField("fuwuqi");    public SocketWindow()
        {
            init();
        }
        public void init()
        {        setLayout(new FlowLayout());
            add(d);
            add(c);
            d.requestFocus();
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
            try{
                d.connect();
                }catch (Exception e){}    }}
    //************************************************
    class DrawWindow extends Canvas
    {
        public int mx,my,yx,yy=10;
        public final static int PORT=8888;
        int postion[][]=new int[20][20];
        DataInputStream is;
        DataOutputStream os;
        Socket ss;    DrawWindow()
        {
            addMouseListener(new MouseAdpt(this));
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
        }
        //我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????????????????????????
        void connect()throws Exception
        {
            ss=new Socket("192.168.0.151",18888);
            if(ss != null)
            {
                System.out.println("成功连接");
                 is=new DataInputStream(ss.getInputStream());
                 os=new DataOutputStream(ss.getOutputStream());
                try
                {
                   // while (true) //while (true)这儿出错了!!!!!!!!!!!
                    {
                        Thread.sleep(300);
                        myThread mt=new myThread(this);
                        mt.start();
                    }            }catch(Exception e)
                {
                }
            }
            return;
        }
    //?????????????????????????????????????????????????????????????
        public int readdata(){
            int t=0;
            try{
                t=is.readInt();
                }catch (Exception e){}
                return t;
        }    public void writedata(int t)
        {
            try
            {
                os.writeInt(t);
            // os.flush();
                System.out.println("写数据");
            }
            catch (Exception e){}
        }    public void paint(Graphics g){
            int i,j,x,y;
            for (i=1;i<=19;i++)
                for (j=1;j<=19;j++){
            g.setColor(Color.black);
            g.drawRect(20*i,20*j,20,20);
                }
                for (x=1;x<=20;x++)
                    for (y=1;y<=20;y++){
                if (postion[x-1][y-1]==2){
                    g.setColor(Color.white);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                if (postion[x-1][y-1]==1){
                    g.setColor(Color.black);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                    }
        }
    }
    //*********************
    class myThread extends Thread
    {
        DrawWindow pp;    myThread(DrawWindow p)
        {
            pp=p;
        }
        public void run()
        {
            while(true)
            {
                pp.yx=pp.readdata();//读服务器端的坐标
                if (pp.postion[pp.yx-1][pp.yy-1]==0)//如果该位置无棋子,落黑子
                {
                    pp.postion[pp.yx-1][pp.yy-1]=1;
                    pp.repaint(0,0,500,500);
                }
            }
        }
    }//***********************************
    class MouseAdpt extends MouseAdapter
    {
        DrawWindow pp;
        MouseAdpt(DrawWindow p)
        {
            pp=p;
        }
        public void mouseClicked(MouseEvent e){
            int x=0,y=0;
            if (e.getX()%20<10 && e.getY()%20<10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20>=10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20<10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20<10 && e.getY()%20>=10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }        if (x>0&x<=20&y>0&y<=20){
                if (pp.postion[x-1][y-1]==0){
                    pp.repaint(0,0,500,500);
                    pp.postion[x-1][y-1]=2;
                }
                System.out.println("准备发送");
                pp.writedata(x);        }
        }
        public static void main(String[] args){
            new SocketWindow();    }
    }
    我把客户端改applet为Frame,好测试。
    有问题发短信,欢迎加分:(
      

  19.   

    GJA106(中文字符)
    逻辑出错?
    能具体的说说吗?
    谢谢!!
      

  20.   

    to cjde3tec:
    public void connect()throws Exception
             {
                 System.out.println("开始鉴听");
                 s=new ServerSocket(18888);             
                 try
                 {
                     while (true)
                     { 
                           ss=s.accept();
                           System.out.println("接收到");                       dis=new DataInputStream(ss.getInputStream());
                          dos=new DataOutputStream(ss.getOutputStream());
                          myThread mt=new myThread(this);
                           mt.start();
                     }
                     }catch(Exception e){}...         }
    你必须要把socket的监听放到一个无限循环里,否则,只监听了一次,那么以后的信息当燃收不到罗:)
      

  21.   

    //socket
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.applet.*;//******************************************class SocketWindow extends Frame
    {
        DrawWindow d=new DrawWindow();
        TextField c=new TextField("fuwuqi");    public SocketWindow()
        {
            init();
        }
        public void init()
        {        setLayout(new FlowLayout());
            add(d);
            add(c);
            d.requestFocus();
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
            try{
                d.connect();
                }catch (Exception e){}    }}
    //************************************************
    class DrawWindow extends Canvas
    {
        public int mx,my,yx,yy=10;
        public final static int PORT=8888;
        int postion[][]=new int[20][20];
        DataInputStream is;
        DataOutputStream os;
        Socket ss;    DrawWindow()
        {
            addMouseListener(new MouseAdpt(this));
            setSize(440,440);
            setBackground(Color.orange);
            setVisible(true);
        }
        //我觉得就是这段程序不对,可是不知哪不对?
    //?????????????????????????????????????????????
        void connect()throws Exception
        {
            ss=new Socket("192.168.0.151",18888);
            if(ss != null)
            {
                System.out.println("成功连接");
                 is=new DataInputStream(ss.getInputStream());
                 os=new DataOutputStream(ss.getOutputStream());
                try
                {
                   // while (true) //while (true)这儿出错了!!!!!!!!!!!
                    {
                        Thread.sleep(300);
                        myThread mt=new myThread(this);
                        mt.start();
                    }            }catch(Exception e)
                {
                }
            }
            return;
        }
    //?????????????????????????????????????????????????????????????
        public int readdata(){
            int t=0;
            try{
                t=is.readInt();
                }catch (Exception e){}
                return t;
        }    public void writedata(int t)
        {
            try
            {
                os.writeInt(t);
            // os.flush();
                System.out.println("写数据");
            }
            catch (Exception e){}
        }    public void paint(Graphics g){
            int i,j,x,y;
            for (i=1;i<=19;i++)
                for (j=1;j<=19;j++){
            g.setColor(Color.black);
            g.drawRect(20*i,20*j,20,20);
                }
                for (x=1;x<=20;x++)
                    for (y=1;y<=20;y++){
                if (postion[x-1][y-1]==2){
                    g.setColor(Color.white);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                if (postion[x-1][y-1]==1){
                    g.setColor(Color.black);
                    g.fillOval(20*x-10,20*y-10,20,20);
                }
                    }
        }
    }
    //*********************
    class myThread extends Thread
    {
        DrawWindow pp;    myThread(DrawWindow p)
        {
            pp=p;
        }
        public void run()
        {
            while(true)
            {
                pp.yx=pp.readdata();//读服务器端的坐标
                if (pp.postion[pp.yx-1][pp.yy-1]==0)//如果该位置无棋子,落黑子
                {
                    pp.postion[pp.yx-1][pp.yy-1]=1;
                    pp.repaint(0,0,500,500);
                }
            }
        }
    }//***********************************
    class MouseAdpt extends MouseAdapter
    {
        DrawWindow pp;
        MouseAdpt(DrawWindow p)
        {
            pp=p;
        }
        public void mouseClicked(MouseEvent e){
            int x=0,y=0;
            if (e.getX()%20<10 && e.getY()%20<10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20>=10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }
            if (e.getX()%20>=10 && e.getY()%20<10){
                x=(e.getX()+e.getX()%20)/20;
                y=(e.getY()-e.getY()%20)/20;
            }
            if (e.getX()%20<10 && e.getY()%20>=10){
                x=(e.getX()-e.getX()%20)/20;
                y=(e.getY()+e.getY()%20)/20;
            }        if (x>0&x<=20&y>0&y<=20){
                if (pp.postion[x-1][y-1]==0){
                    pp.repaint(0,0,500,500);
                    pp.postion[x-1][y-1]=2;
                }
                System.out.println("准备发送");
                pp.writedata(x);        }
        }
        public static void main(String[] args){
            new SocketWindow();    }
    }
    我把客户端改applet为Frame,好测试。
    有问题发短信,欢迎加分:(
      

  22.   

    xioyoo(xioyoo)一旦ss=s.accept()监听到socket就建立一个socket与之相对应建立连接
    注意,是每次!所以应用多线程可以多用户连接,而我的是单用户,所以
    ………………………………………………………………
      

  23.   

    xioyoo(xioyoo)一旦ss=s.accept()监听到socket就建立一个socket与之相对应建立连接
    注意,是每次!所以应用多线程可以多用户连接,而我的是单用户,所以
    ………………………………………………………………
      

  24.   

    哎呀,都说了错了嘛,下午写代码把头写晕了,加上刚才看得急
    如果是多用户与服务器相连参与游戏,当然需要监听到多个SOCKET,我
    刚才就想成这种情况了。
    你要不要我给你开帖送分赔不是啊?
      

  25.   

    哎呀,都说了错了嘛,下午写代码把头写晕了,加上刚才看得急
    如果是多用户与服务器相连参与游戏,当然需要监听到多个SOCKET,我
    刚才就想成这种情况了。
    你要不要我给你开帖送分赔不是啊?
      

  26.   

    哎呀,都说了错了嘛,下午写代码把头写晕了,加上刚才看得急
    如果是多用户与服务器相连参与游戏,当然需要监听到多个SOCKET,我
    刚才就想成这种情况了。
    你要不要我给你开帖送分赔不是啊?
      

  27.   

    xioyoo(xioyoo) :
    呵呵,谁叫你这么问人家?
    我如果要那人家的程序交作业,
    那还用等到交作业的头一天才……,呵呵。
    还有,我们学校的破网慢,
    等我发一个贴子时,你们已经跑了好几楼了。
      

  28.   

    GJA106(中文字符) :
    你发了大概有7个程序吧,好象都一样,是不是啊??我没细看!CSDN发消息是越来越糟烂了。
    郁闷
      

  29.   

    GJA106(中文字符) :
    你发的大概有7段程序,是不是都一样的?没细看!:)CSDN发帖子、回帖子是越来越难了
    sigh~~