A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乔建国 中级黑马   /  2012-5-18 23:04  /  2028 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通过客户端键盘录入单词,并发送到服务端。
服务端在控制台打印后,将该单词转成大写再发回客户端。

服务器端
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Receive {
public static void main(String[] args) throws Exception {
  ServerSocket ss = new ServerSocket(10057);
  
  Socket s = ss.accept();
  String ip = s.getInetAddress().getHostAddress();
  System.out.println(ip+".....connected");
  String str= null;
  String str2 = null;
   
  InputStream in = s.getInputStream();
  int len =0;
  byte[] buf = new byte[1024];
  while((len= in.read(buf))!=-1){
     str=new String(buf,0,len);
    str2=str.toUpperCase();
    System.out.println(str2);
  }
  in.close();
  
  
  System.out.println("'aaaaasdfdsfsdfsd");    //为什么从这里开始后面都不执行?求指教
  OutputStream out = s.getOutputStream();
  System.out.println("'sdfdsfsdfsd");
  out.write(str2.getBytes());
  
       s.close();
     }
    }


客户端
public class Send {
public static void main(String[] args) throws IOException {
  
  Socket socket = new Socket("127.0.0.1", 10057);
  
  BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
  System.out.println("输入信息:");
  OutputStream out = socket.getOutputStream();
  
  
  String line;
  
  while((line=buf.readLine())!=null){
   byte[] arr = line.getBytes();
   out.write(arr);
  }
  
  
InputStream in = socket.getInputStream();
  int len =0;
  byte[] bi = new byte[1024];
  while((len= in.read(bi))!=-1){
   System.out.println(new String(bi,0,len));
  }
   socket.close();
  }
}

1 个回复

倒序浏览
我运行了下,没什么问题,如果你的在那里停了的话,可以把 in.close(); 放在s.close();的上面试试。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马