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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心在左边跳 中级黑马   /  2015-7-10 15:00  /  987 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Socket和ServerSocket

  • 建立客户端和服务器端
  • 建立连接后,通过Socket的IO流进行数据传输
  • 关闭SOCKET
  1. import java.io.*;
  2. import java.net.*;
  3. /**
  4. *1.TCP分客户端和服务端
  5. *2.客户端对应对象Socket.服务端对应的对象ServerSocket
  6. *
  7. */
  8. /*
  9. *客户端,该对象建立时,就去连接指定主机。因为tcp是面向连接的。
  10. *所以在建立Socket时,就要有服务端存在,并连接成功,形成通路后,
  11. *在该通道进行数据传输。
  12. */
  13. public class TCPClient {
  14.     public static void main(String[] args) throws Exception {
  15.         //创建客户端socket服务,指定目的主机和端口
  16.         Socket s=new Socket("127.0.0.1",10003);
  17.         //为了发送数据,获取socket流中的输出流
  18.         OutputStream out =s.getOutputStream();
  19.         out.write("tcp come".getBytes());
  20.         s.close();
  21.     }
  22. }
复制代码
  1. import java.io.*;
  2. import java.net.*;
  3. /**
  4. * 服务端
  5. * 1.建立服务端Socket服务,serverSocket(),监听一个端口
  6. * 2.获取连接过来的客户端对象,通过ServerSocket的accept对象,所以这个方法是阻塞式的
  7. * 没有连接会等待
  8. * 3.客户端如果发过来数据,服务端要使用对应的客户端对象,并获取该客户端对象的读取流读取
  9. * 发过来的数据,并打印在控制台
  10. * 4.关闭服务端(可选)
  11. */
  12. public class TCPServer {
  13.     public static void main(String[] args) throws Exception {
  14.         //建立服务端的socket服务,监听一个端口
  15.         ServerSocket ss=new ServerSocket(10003);
  16.         //通过accept获取连接过来的客户端对象
  17.         Socket s=ss.accept();
  18.         String ip=s.getInetAddress().getHostAddress();
  19.         System.out.println("ip:"+ip);
  20.         //获取客户端发送来的数据,使用客户端对象的读取流来读取数据
  21.         InputStream in=s.getInputStream();
  22.         byte[] buf=new byte[1024];
  23.         int len=in.read(buf);
  24.         System.out.println(new String(buf,0,len));
  25.         //关闭客户端
  26.         s.close();
  27.         //关闭服务端
  28.         ss.close();
  29.     }
  30. }
复制代码



2 个回复

倒序浏览
你这只能建立链接然后就关掉了,
没把法聊天啊,建议改进一下。
回复 使用道具 举报
水过,,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马