socket连不上来

atinysix 2013-08-29 10:02:00

下面代码哪错了,socket就是连不起来:

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

class TransClient{
public static void main(String[] args) throws Exception{
InetAddress ia = InetAddress.getLocalHost();
Socket s = new Socket(ia.getHostAddress(), 10005);

//源:键盘
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
BufferedReader bufIn =
new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bufOut =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

String line = null;
while((line = bufr.readLine()) != null){
if("over".equals(line)){
break;
}
bufOut.write(line);
bufOut.newLine();
bufOut.flush();

String str = bufIn.readLine();
System.out.println("Server: " + str);
}

bufr.close();
s.close();
}

}
public class TransServer {

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
ServerSocket ss = new ServerSocket(10005);
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println("IP: " + ip + "...connected...");

BufferedReader bufIn =
new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bufOut =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

String line = null;
while((line = bufIn.readLine()) != null){
//从客户端读到文本,然后转成大写形式反馈给客户端.
bufOut.write(line.toUpperCase());
bufOut.newLine();
bufOut.flush();
}
s.close();
ss.close();

}

}


...全文
204 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
harrisonkao 2013-08-30
  • 打赏
  • 举报
回复
引用 5 楼 jsjhxqh 的回复:
[quote=引用 4 楼 Soiol 的回复:] [quote=引用 3 楼 jsjhxqh 的回复:] 好吧,请学习好多线程ok,真是亮瞎我了。没有线程你的服务端main方法运行完,ServerSoket被回收你哪来的服务端。
main方法运行完,当然就没了服务端,但是,这个程序 连

String ip = s.getInetAddress().getHostAddress();
        System.out.println("IP: " + ip + "...connected...");
都没有执行到,不觉得很奇怪? 而且问题我早也解决了,谁说非要线程?[/quote] sorry我问题理解错了,其他没问题,唯一的可能是端口号问题,打开服务看看端口号有没被占用。 [/quote] 去掉客户端的 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));试试
harrisonkao 2013-08-30
  • 打赏
  • 举报
回复
引用 4 楼 Soiol 的回复:
[quote=引用 3 楼 jsjhxqh 的回复:] 好吧,请学习好多线程ok,真是亮瞎我了。没有线程你的服务端main方法运行完,ServerSoket被回收你哪来的服务端。
main方法运行完,当然就没了服务端,但是,这个程序 连

String ip = s.getInetAddress().getHostAddress();
        System.out.println("IP: " + ip + "...connected...");
都没有执行到,不觉得很奇怪? 而且问题我早也解决了,谁说非要线程?[/quote] sorry我问题理解错了,其他没问题,唯一的可能是端口号问题,打开服务看看端口号有没被占用。
atinysix 2013-08-29
  • 打赏
  • 举报
回复
引用 1 楼 yanan_seachange 的回复:
楼主怎么运行的? 代码貌似没问题。服务端需要保持运行,再运行客户端,发送数据到服务端。 然后应该可以接到的。
先java TransServer 再 java TransClient 在两个dos环境下的
iLemon 2013-08-29
  • 打赏
  • 举报
回复
楼主怎么运行的? 代码貌似没问题。服务端需要保持运行,再运行客户端,发送数据到服务端。 然后应该可以接到的。
atinysix 2013-08-29
  • 打赏
  • 举报
回复
引用 3 楼 jsjhxqh 的回复:
好吧,请学习好多线程ok,真是亮瞎我了。没有线程你的服务端main方法运行完,ServerSoket被回收你哪来的服务端。
main方法运行完,当然就没了服务端,但是,这个程序 连

String ip = s.getInetAddress().getHostAddress();
        System.out.println("IP: " + ip + "...connected...");
都没有执行到,不觉得很奇怪? 而且问题我早也解决了,谁说非要线程?
harrisonkao 2013-08-29
  • 打赏
  • 举报
回复
好吧,请学习好多线程ok,真是亮瞎我了。没有线程你的服务端main方法运行完,ServerSoket被回收你哪来的服务端。

62,620

社区成员

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

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