Socket有关问题!

Socket问题!!我写了下面的两个类,是想实C/S之间的通信.我要怎么设置类中的值,才能实现通信呢?我在运行Sock

Socket问题!!
我写了下面的两个类,是想实C/S之间的通信.我要怎么设置类中的值,才能实现通信呢?我在运行SocketClient     时,出现java.net.ConnectException:   Connection   refused:   connect的异常!请指教一下,小弟.

package   urlsocket;
import   java.net.*;
import   java.io.*;

public   class   SocketClient   {
        Socket   s=null;
        DataInputStream   instream=null;
        DataOutputStream   outstream=null;
       
       
        public   SocketClient()   {
                try{
                        init();
                        waitData();
                }
                catch(Exception   e)
                {
                        System.out.println(e.toString());
                }
        }
        void   init()   throws   Exception
        {
                s=new   Socket( "192.168.0.102 ",8765);
                instream=new   DataInputStream(s.getInputStream());
                outstream=new   DataOutputStream(s.getOutputStream());
                s.setSoTimeout(3000);
        }
        void   waitData()
        {
                while(true)
                {
                        try{
                                String   str=instream.readUTF();
                                System.out.println( "Client   accept: "+str);
                                str=Integer.toString(Integer.parseInt(str)+1);
                                outstream.writeUTF(str);
                        }catch(Exception   e)
                        {
                                System.out.println(e.toString());
                                break;
                        }
                                       
                }


        }
       

        public   static   void   main(String[]   args)   {
                new   SocketClient();
        }
}


package   urlsocket;

import   java.net.*;
import   java.io.*;

public   class   SocketServer   {
        ServerSocket   ss=null;
        Socket   s=null;
        DataInputStream   instream=null;
        DataOutputStream   outstream=null;
       
        public   SocketServer()   {
                try{
                        init();
                       
                }catch(Exception   e)
                {
                        System.out.println(e.toString());
                }
        }
        void   init()   throws   Exception  
        {
                ss=new   ServerSocket(8765);
                s.setSoTimeout(3000);
        }
        void   waitForClient()
        {
                try{
                        s=ss.accept();
                        instream=new   DataInputStream(s.getInputStream());
                        outstream=new   DataOutputStream(s.getOutputStream());
                        outstream.writeUTF( "1 ");
                        s.setSoTimeout(3000);
                        waitData();
                }catch(Exception   e)
                {
                        System.out.println(e.toString());
                }
        }
        void   waitData()
        {
                while(true)
                {
                        try{
                                String   str=instream.readUTF();
                                System.out.println( "Server   accept: "+str);


                                int   nu=Integer.parseInt(str)+1;
                                if(nu> 10)
                                {
                                        System.out.println( "send   end! ");
                                        break;
                                }
                                else
                                {
                                        str=Integer.toString(nu);
                                        outstream.writeUTF(str);
                                }
                        }catch(Exception   e)
                        {
                                System.out.println(e.toString());
                                break;
                        }
                }
        }

        public   static   void   main(String[]   args)   {
                SocketServer   socketserver   =   new   SocketServer();
                socketserver.waitForClient();
        }
}


[解决办法]
就是先运行SocketServer.class类文件,
再运行 SocketClient.class类文件.

要不然client类在运行s=new Socket( "192.168.0.102 ",8765)的时候会发现8765这个接口没有被监听,所以会出错.


[解决办法]
回复人:zkf100() ( ) 信誉:1002007-03-22 21:51:10得分:0


?怎么启动server啊,我没有做过,可以说的具体一点吗?
----------------------------------

如果在同一机器上测试两个程序,启动server的方法:
java SocketServer localhost
再开一个cmd窗口
java SocketClient
[解决办法]
还有在同一机器上测试的时候,你的IP最好不要用192.168.0.102,用在路由器上的IP可能会有点问题.如果你有用socketImpl的话,再用这个IP,不然,请用127.0.0.1这个是本地IP.