首页 > 代码库 > 黑马程序员——TCP的客户端与服务器端

黑马程序员——TCP的客户端与服务器端

 

/*  TCP 的客户端与服务器端  

 客户端:   

1,建立Socket连接,制定服务器端的IP地址和端口号   

2,获取流中的输入和输出流对象来操作数据   

3.利用write方法将数据写出  

 4.关闭客户端  

 

服务器端:   

1.利用serverSocket指定端口与客户端建立连接  

 2.获取客户端对象,accept()方法  

 3.利用客户端对象获取输入和输出流对象来操作数据   

4.提取数据,  

 5,一定时间后关闭客户端,服务器端一般不需要关闭    

*/

import java.io.*;

import java.net.*;

class Client{  public static void main(String [] args) throws Exception{   

//建立客户端连接,指点服务器端的IP和端口号   

Socket socket = new Socket("192.168.0.102",25000);  

 //获取服务器端的输出流对象输出数据   

OutputStream outputStream = socket.getOutputStream();   

//从键盘接收数据   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

  String str = null;   

//切记:read是阻塞式方法   

while((str = bufferedReader.readLine())!=null){    

byte[] buf = str.getBytes();    

//写出数据    

outputStream.write(buf,0,buf.length);   

 //outStream.flush();  

 }   

//关闭流,关闭客户端  

 bufferedReader.close();   socket.close();            

 } }

class Server{

 public static void main(String [] args) throws Exception{  

 //建立服务器端连接,并指定端口   

ServerSocket serverSocket = new ServerSocket(25000);  

 //获取客户端对象,accetp是阻塞式方法   

Socket socket = serverSocket.accept();   

//获取客户端对象的输入流来读取数据   

InputStream inputStream = socket.getInputStream();   

//存放数据   

byte[] buf = new byte[1024];  

 int len = 0;  

 //获取数据信息   

while((len = inputStream.read(buf))!=-1){   

 int port = socket.getPort();    

String ip = socket.getInetAddress().getHostAddress();   

 String data = http://www.mamicode.com/new String(buf,0,len);

 System.out.println(ip+".."+data+".."+port);

  }  

 //关闭客户端   socket.close();

 } }