大家帮忙给看下,这个C/S小程序那里错了?谢谢!

yakoo5 2008-05-20 05:18:35
这个是服务器端程序,
package myCS;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {

/**
* @param args
*/

public static void main(String[] args) {

try {
//建立Server Socket并等待连接请求
ServerSocket server = new ServerSocket(1680);
Socket socket = server.accept();

//连接建立,通过Socket获取连接上的输入/输出流
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());

//创建标准输入流,从键盘接收数据
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));

/*先读取Client 发送的数据,
* 然后从标准输入读取数据发送给Client当接收到bye时关闭连接
*/

String s;
while (!(s=in.readLine()).equals("bye")) {
System.out.println("# 接收自客户端: "+s); //===>此处接收自客户端的s为什么 不能打印呢?(就这一个疑问)
out.println(sin.readLine());
out.flush();
}
System.out.println("正在关闭连接... ...");

//关闭连接
in.close();
out.close();
socket.close();
server.close();

} catch (Exception e) {
System.out.println("错误:"+e);
}
}

}

以下是客户端程序(这个没问题):
package myCS;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class MyClient {

/**
* @param args
*/
public static void main(String[] args) {

try {
Socket socket = new Socket("127.0.0.1",1680); //发出连接请求

//连接建立,通过Socket获取连接上的输入/输出流
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));

//创建标准输入流,从键盘读取数据
BufferedReader sin = new BufferedReader(
new InputStreamReader(System.in));

//从标准输入中读取一行,发生Server端,当用户输入bye时结束连接
String s;
do {
s=sin.readLine();
out.println();
out.flush();
if (! s.equals("bye")) {
System.out.println("@服务器端响应:"+in.readLine());
} else {
System.out.println("正在关闭连接... ...");
}
} while (! s.equals("bye"));

//关闭连接
out.close();
in.close();
socket.close();
} catch (Exception e) {
System.out.println("错误: "+e);
}
}

}


...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_nuo 2008-05-22
  • 打赏
  • 举报
回复
不客气,一起学习!
yakoo5 2008-05-21
  • 打赏
  • 举报
回复

还是ls细心呢!

谢了!
a_nuo 2008-05-20
  • 打赏
  • 举报
回复
錯誤是你没有把客户端的数据输出到服务器端的输入流中
a_nuo 2008-05-20
  • 打赏
  • 举报
回复
package myCS;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class MyClient {

/**
* @param args
*/
public static void main(String[] args) {

try {
Socket socket = new Socket("127.0.0.1",1680); //发出连接请求

//连接建立,通过Socket获取连接上的输入/输出流
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));

//创建标准输入流,从键盘读取数据
BufferedReader sin = new BufferedReader(
new InputStreamReader(System.in));

//从标准输入中读取一行,发生Server端,当用户输入bye时结束连接
String s;
do {
s=sin.readLine();
out.println(s);//這裡幫你該了
out.flush();
if (! s.equals("bye")) {
System.out.println("@服务器端响应:"+in.readLine());
} else {
System.out.println("正在关闭连接... ...");
}
} while (! s.equals("bye"));

//关闭连接
out.close();
in.close();
socket.close();
} catch (Exception e) {
System.out.println("错误: "+e);
}
}

}

62,614

社区成员

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

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