我写了一个简单的socket通信程序,但在局域网中总是只能接收到null,请各位帮忙,在此谢过。
/**
 * @(#)Socket_server.java
 *
 *
 * @author Administrator
 * @version 1.00 2007/12/3
 */
import java.net.ServerSocket;
import java.net.Socket;
import java.net.*;
import java.io.*;
public class Socket_server {
        
    /**
     * Creates a new instance of <code>Socket_server</code>.
     */
    public Socket_server() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       try{
        ServerSocket server_socker=new ServerSocket(4500);
        Socket clientConn=server_socker.accept();
        BufferedReader input=new BufferedReader(new InputStreamReader(clientConn.getInputStream()));
       // PrintStream output=new PrintStream(clientConn.getOutputStream(),true); 
      String st= input.readLine();
      System.out.println (st);     
        server_socker.close();
        clientConn.close();
        input.close();
    }
    catch(IOException e){
     System.out.println (e);
    }
}
}/////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @(#)Socket_server.java
 *
 *
 * @author Administrator
 * @version 1.00 2007/12/3
 */
import java.net.ServerSocket;
import java.net.Socket;
import java.net.*;
import java.io.*;
public class Socket_server {
        
    /**
     * Creates a new instance of <code>Socket_server</code>.
     */
    public Socket_server() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       try{
        ServerSocket server_socker=new ServerSocket(4500);
        Socket clientConn=server_socker.accept();
        BufferedReader input=new BufferedReader(new InputStreamReader(clientConn.getInputStream()));
       // PrintStream output=new PrintStream(clientConn.getOutputStream(),true); 
      String st= input.readLine();
      System.out.println (st);     
        server_socker.close();
        clientConn.close();
        input.close();
    }
    catch(IOException e){
     System.out.println (e);
    }
}
}

解决方案 »

  1.   

    /**
     * @(#)SocketClint.java
     *
     *
     * @author Administrator
     * @version 1.00 2007/12/3
     */
    import java.net.Socket;
    import java.net.ServerSocket;
    import java.net.*;
    import java.io.*;
    public class SocketClint {
            
        /**
         * Creates a new instance of <code>SocketClint</code>.
         */
        public SocketClint() {
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            try{
             Socket sock=new Socket(InetAddress.getLocalHost(),4500);
             OutputStreamWriter s=new OutputStreamWriter(sock.getOutputStream());
             //byte a[]=new byte[250];
             String st="asdfasdaf";
             s.write(st);          
             s.close();       
             sock.close();
            }
            catch(Exception e){System.out.println (e);}
        }
    }
    这是客户端代码
      

  2.   

    在单机上测试的确没问题,但再网络中测试就只能接受到null,但访问计算机的IP是可以获取到的。
    请各位帮忙解决这个问题,谢谢。