服务机程序如下:
import java.io.*;
import java.net.*;
public class TestServer {
public static void main(String args[]){
try{
ServerSocket portnum = new ServerSocket(7000);

Socket clientSocket = portnum.accept();
DataInputStream dis = new DataInputStream(clientSocket.getInputStream());
new ServerReader(dis).start();
}catch(IOException e){
e.printStackTrace();
}
}
static class ServerReader extends Thread{
DataInputStream dis;
public ServerReader(DataInputStream dis){
this.dis = dis;
} public void run(){
String info;
try{
while(true){
info = dis.readUTF();
System.out.println(info);
}
} catch(IOException he){
he.printStackTrace();
}
}
}
}
客户机程序如下:
import java.io.*;
import java.net.*;
public class TestClient {
public static void main(String args[]){
try {
Socket s1 = new Socket("127.0.0.1" ,7000);
DataOutputStream os= new DataOutputStream(s1.getOutputStream());
InetAddress host = null;
os.writeUTF("客户主机名为:" +host.getHostName() );
}catch(IOException e){
e.printStackTrace();
}
}
}
想在服务机打印出客户机的主机名 运行后却得不到想要的结果 本人是菜鸟 不知道上面程序问题出现在哪里? 谢谢指教....

解决方案 »

  1.   

    答:已通过测试的程序代码参考如下:你自己再比较读一读吧//服务器
    import java.io.*; 
    import java.net.*; 
    public class TestServer { 
    public static void main(String args[]){ 
    try{ 
    ServerSocket portnum = new ServerSocket(7000); Socket clientSocket = portnum.accept(); 
    BufferedReader dis = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
    new ServerReader(dis).start(); 
    }catch(IOException e){ 
    e.printStackTrace(); 


    static class ServerReader extends Thread{ 
    BufferedReader dis; 
    public ServerReader(BufferedReader dis){ 
    this.dis = dis; 
    } public void run(){ 
    String info; 
    try{ 
    //while(true)

    info = dis.readLine(); 
    System.out.println(info); 

    } catch(IOException he){ 
    he.printStackTrace(); 




    //以下是客户机
    import java.io.*; 
    import java.net.*; 
    public class TestClient { 
    public static void main(String args[]){ 
    try { 
    Socket s1 = new Socket("127.0.0.1" ,7000); 
    PrintWriter os= new PrintWriter(s1.getOutputStream()); 
    InetAddress host = null; 
    os.println("客户主机名为:" +host.getLocalHost().getHostName() ); 
    os.flush();
    os.close();
    }catch(IOException e){ 
    e.printStackTrace();