黑马程序员技术交流社区
标题:
TCP问题
[打印本页]
作者:
九天玄妖
时间:
2016-4-30 23:40
标题:
TCP问题
在多线程服务端和单线程客户端代码中,你们有尝试输出流使用OutputStream吗?
我把输出流改成这个,运行后就没有结果了,搞不懂为什么?有没有这一块理解比较深刻的大神,请分享下经验,谢谢。
作者:
cc19930915
时间:
2016-4-30 23:42
上代码看看
作者:
九天玄妖
时间:
2016-4-30 23:47
cc19930915 发表于 2016-4-30 23:42
上代码看看
public class Test_Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(54321);
System.out.println("服务器启动,绑定54321端口");
while(true) {
final Socket socket = server.accept(); //接受客户端的请求
new Thread() { //开启一条线程
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //获取输入流
OutputStream os = socket.getOutputStream();
String line = br.readLine(); //将客户端写过来的数据读取出来
System.out.println(line);
os.write(line.getBytes());
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
}
public class Test_Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Scanner sc = new Scanner(System.in); //创建键盘录入对象
System.out.println("请输入一个字符串:");
Socket socket = new Socket("127.0.0.1", 54321); //创建客户端,指定ip地址和端口号
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //获取输入流
OutputStream os = socket.getOutputStream();
os.write(sc.nextLine().getBytes());
System.out.println(br.readLine()); //将反转后的结果读出来
socket.close();
}
}
作者:
cc19930915
时间:
2016-5-1 00:30
你写出去写的是一个字节数组,读的时候读字符串 应该是这里出现问题了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2