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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Super_Class 高级黑马   /  2013-6-6 19:12  /  1372 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Super_Class 于 2013-6-7 00:25 编辑

服务器端

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStream;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;

  8. public class TCPServerDemo {
  9.         public static void main(String []args) throws IOException{
  10.                 ServerSocket ss = new ServerSocket(8880);
  11.                
  12.                 Socket socket = ss.accept();
  13.                
  14.                 InputStream ips = socket.getInputStream();
  15.                 OutputStream ops = socket.getOutputStream();
  16.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(ips));
  17.                
  18.                 String line = null;
  19.                 while((line = bufr.readLine())!=null){
  20.                         System.out.print(socket.getInetAddress().getHostName()+"::"+socket.getPort()+"::"+line);
  21.                 }
  22.                
  23.         
  24.                 ops.write("收到".getBytes());
  25.                 System.out.println("发送成功");
  26.                
  27.                
  28.                 ss.close();
  29.                 socket.close();
  30.         }
  31. }
复制代码
客户端

  1. import java.io.IOException;
  2. import java.io.*;
  3. import java.io.OutputStream;
  4. import java.net.Socket;
  5. import java.net.UnknownHostException;

  6. public class TCPClientDemo {
  7.         public static void main(String []args) throws UnknownHostException, IOException{
  8.                 Socket socket = new Socket("127.0.0.1",8880);
  9.         OutputStream ops = socket.getOutputStream();
  10.                 ops.write("这个是TCP Client Demo".getBytes());
  11.                 System.out.println("fasong成功");



  12.         InputStream ips = socket.getInputStream();
  13.                 System.out.println("成功1");
  14.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(ips));
  15.                 System.out.println("成功2");
  16.                 String line = bufr.readLine();
  17.                 System.out.println("成功3");
  18.                 System.out.println("line = "+line);
  19.                 System.out.println("成功4");
  20.                


  21.                 ops.close();
  22.                 socket.close();
  23.         }
  24. }
复制代码
结果一直在阻塞状态。求这个谁正在学这个的,看看。是什么情况。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

3 个回复

倒序浏览
修改好的代码,错误地方,看注释
  1. public class TCPServerDemo {
  2.     public static void main(String []args) throws IOException{
  3.             ServerSocket ss = new ServerSocket(8880);
  4.             
  5.             Socket socket = ss.accept();
  6.             
  7.             InputStream ips = socket.getInputStream();
  8.             OutputStream ops = socket.getOutputStream();
  9.             BufferedReader bufr = new BufferedReader(new InputStreamReader(ips));
  10.             
  11. //            String line = null;
  12. //            while((line = bufr.readLine())!=null){//发过来的信息只有一行,所有不可以while循环
  13.                     System.out.println(socket.getInetAddress().getHostName()+"::"+socket.getPort()+"::"+bufr.readLine());
  14. //            }
  15.             
  16.    
  17.             ops.write("收到 \r".getBytes());
  18.             System.out.println("发送成功");
  19.             
  20.             ops.flush();
  21.             ss.close();
  22.             socket.close();
  23.     }
  24. }


  25. public class TCPClientDemo {
  26.         public static void main(String []args) throws UnknownHostException, IOException{
  27.                 Socket socket = new Socket("127.0.0.1",8880);
  28.         OutputStream ops = socket.getOutputStream();
  29.                 ops.write("这个是TCP Client Demo\n".getBytes());
  30.                 System.out.println("fasong成功");



  31.                 InputStream ips = socket.getInputStream();
  32.                 System.out.println("成功1");
  33.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(ips));
  34.                 System.out.println("成功2");
  35.                 String line = bufr.readLine();
  36.                 System.out.println("成功3");
  37.                 System.out.println("line = "+line);
  38.                 System.out.println("成功4");
  39.                


  40.                 ops.close();
  41.                 socket.close();
  42.         }
  43. }
复制代码
回复 使用道具 举报
肯定不是你指出的问题,就那点来说是不会影响代码的运行的,我也在看,难度很大啊
回复 使用道具 举报

  1. import java.io.*;
  2. import java.net.*;

  3.         public class TCPServerDemo {
  4.                 public static void main(String []args) throws IOException, InterruptedException{
  5.                         ServerSocket ss = new ServerSocket(1999);               
  6.                         Socket socket = ss.accept();//通过accept方法获取连接过来的客户端对象。   
  7.                         InputStream ips = socket.getInputStream();//获取客户端发送过来的数据,使用客户端对象的读取流来读取数据。
  8.                         byte[] buf = new byte[1024];
  9.                                 int len = ips.read(buf);
  10.                                 System.out.println(new String(buf,0,len));
  11.                         OutputStream ops = socket.getOutputStream();
  12.                         System.out.println((socket.getInetAddress().getHostName()+"::"+socket.getPort()+"::"+new String(buf,0,len)));
  13.                         Thread.sleep(10000);
  14.                         ops.write("收到".getBytes());
  15.                        System.out.println("发送成功");               
  16.                       
  17.                         socket.close();
  18.                         ss.close();
  19.                 }
  20.         }
  21. [code]import java.net.*;
  22. import java.io.*;

  23. public class TCPClientDemo {
  24.     public static void main(String []args) throws IOException{
  25.             Socket s = new Socket("192.168.1.2",1999);
  26.             OutputStream out = s.getOutputStream();   //获得输出流
  27.             out.write("这个是TCP Client Demo".getBytes());

  28.    
  29.             InputStream ips = s.getInputStream();
  30.             System.out.println("成功1");
  31.                     byte[] bufIn = new byte[1024];
  32.                     int num = ips.read(bufIn);
  33.                     System.out.println(new String(bufIn,0,num));
  34.                     System.out.println("成功2");

  35.                     out.close();
  36.             s.close();
  37.     }
  38. }
复制代码
[/code]
这个是可以的代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马