一个关于Socket问题

qbyuji 2008-04-30 10:52:25
服务机程序如下:
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();
}
}
}


想在服务机打印出客户机的主机名 运行后却得不到想要的结果 本人是菜鸟 不知道上面程序问题出现在哪里? 谢谢指教....
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
云上飞翔 2008-04-30
  • 打赏
  • 举报
回复
答:已通过测试的程序代码参考如下:你自己再比较读一读吧

//服务器
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();
}
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧