黑马程序员--学习--网络2

来源:互联网 发布:美工师 编辑:程序博客网 时间:2024/04/28 17:19

---------------------- android培训java培训、期待与您交流! ----------------------

Tcp传输的客户端和服务器的互访
需求
客户端给服务端发送数据,服务端收到后,给客户端反馈信息

//客户端:
1.建立socket服务,指定要连接的主机和端口
2.获取socket流中的输出流,将数据写到该流中,通过网络发送给服务端
3.获取socket流中的输入流,将服务端反馈的数据获取到,并打印
4.关闭客户端资源
import Java.io.*;
import Java.net.*;

class Client{
 public static void main(String[] args)throws Exception{
  Socket s = new Socket(192.168.1.254,10000);
  OutputStream out = s.getOutputStream();
  out.write("你好".getBytes());
  InputStream in = s.getInputStream();
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  System.out.println(new String(buf,0,len));
  s.close();
 }
}

//服务端
1.建立服务端的socket服务 ServerSocket();并监听一个接口
2.获取连接过来的客户端对象
通过ServerSocket的accep方法,没有连接就会等待,所以这个方法是阻塞式的
3.客户端如果放过来数据,那么服务端要使用对应的客户端对象,并获取该客户端对象的读取流来读取
并打印在控制台
4.关闭服务端(可选)
class Service{
 public static void main(String[] args)throws Exception{
  ServerSocket ss = new ServerSocket(10000);
  Socket s = ss.accept();
  String ip = s.getInetAddress().getHostAddress();
  System.ou.println(ip+"...connected");
  InputStream in = s.getInputStream();
  byt[] buf = new byte[1024];
  int len = in.read(buf);
  System.out.println(new String(buf,0,len));
  OutputStream out = s.getOutputStream();
  out.write("收到".getBytes());
  s.close();
  ss.close();

 }
}

---------------------- android培训java培训、期待与您交流! ----------------------