黑马程序员技术交流社区
标题:
TCP传输问题 求解
[打印本页]
作者:
宗士为
时间:
2012-5-19 20:21
标题:
TCP传输问题 求解
客户端通过键盘录入单词并发送到服务端,服务端在显示后,将其转成大写反馈给客户端。
当客户端录入内容为over时,结束录入。
但是传输不了 找不到问题 大家帮看看
public class FileServer {
public static void main(String[] args) throws IOException {// 获取ServerSocket的服务端Socket ServerSocket ss = new ServerSocket(8889);// 通过accput()获取客户端Socket Socket s = ss.accept(); String ip = s.getInetAddress().getHostAddress(); System.out.println(ip + "------ing");// 获取输入流 BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));// 获取输出流 PrintWriter out = new PrintWriter(s.getOutputStream(),true); String len; while((len = in.readLine()) != null) System.out.println(len); out.println(len.toUpperCase());// 关闭资源 s.close(); ss.close(); }}
public class FileClient {
/** * @param args * @throws Exception */ public static void main(String[] args) throws Exception {// 创建socket对象 Socket s = new Socket("10.1.31.66",8889);// 获取输出流 PrintWriter out = new PrintWriter(s.getOutputStream(),true); BufferedReader bufin= new BufferedReader(new InputStreamReader(System.in));// 获取输入流 BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); String len = null; while((len = bufin.readLine()) != null) { if("over".equals(len)) break; } out.print(len); String str = in.readLine(); System.out.println(str); // 关闭资源 s.close();
}}
作者:
李保成
时间:
2012-5-19 20:33
楼主写的时候注意编码格式,有点乱,而且就服务器读取的那块儿还有问题,while循环连大括号都没有。不看了,给你一个写好的服务器客户端的代码吧,里边都有注释,你对照看一下。
public class FileServer{
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//1,服务器打开端口
ServerSocket ss = new ServerSocket(8889);
//2,获取socket对象。
Socket s = ss.accept();
//获取ip.
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"......connected");
//3,获取socket读取流,并装饰。
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//4,获取socket的输出流,并装饰。
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
String line = null;
while((line=bufIn.readLine())!=null){
System.out.println(line);
out.println(line.toUpperCase());
}
//注意一下你写的格式
//关闭资源
s.close();
ss.close();
}
}
public class FileClient {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
//1,创建socket客户端对象。
Socket s = new Socket("10.1.31.66",8889);
//2,获取键盘录入。
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
//3,socket输出流。
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
//4,socket输入流,读取服务端返回的大写数据
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = null;
while((line=bufr.readLine())!=null){
if("over".equals(line))
break;
out.println(line);
//读取服务端发回的一行大写数。
String upperStr = bufIn.readLine();
System.out.println(upperStr);
}
s.close();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2