JAVA_TCP客户端服务端

服务端:

package cn.itcast.tcp.demo;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务端接收客户端发送来的数据,并打印带控制台上
 * 
 * 建立TCP连接思路:
 * 
 * 1、首先建立服务端服务,通过ServeSocket对象
 * 
 * 2、客户端必须对外提供一个端口,否则无法连接
 * 
 * 3、服务端获取客户端的对象
 * 
 * 4、通过客户端对象获取Socket流,并把数据打印在控制台上
 * 
 * 5、关闭流,客户端的和服务端的。
 * 
 * */
public class ServeDemo {

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

//		1、首先建立服务端服务,通过ServerSocket对象
		ServerSocket ss=new ServerSocket(10012);
		
//		2、服务端获取客户端的对象
		Socket s=ss.accept();//阻塞式的方法
		String ip=s.getInetAddress().getHostAddress();
		
//		3、通过客户端对象获取Socket流,并把数据打印在控制台上
		InputStream is=s.getInputStream();
		byte[]buff=new byte[1024];
		int len=is.read(buff);
		String txt=new String(buff, 0, len);
		
//		4、打印数据
		System.out.println(ip+"::::"+txt);
		
//		5、给客户端回复数据,通过客户端的socket流的outputstream流
		OutputStream os=s.getOutputStream();
		
//		6、给客户端写入数据
		os.write("我知道了".getBytes());
		
//		7、关闭资源
		s.close();
		ss.close();
	
	}

}

客户端:

package cn.itcast.tcp.demo;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * Tcp传输客户端床垫过程
 * 
 * 1、建立Tcp的Socket服务,使用的是Socket对象,建议一开始就明确目的地,要连接的主机;
 * 
 * 2、如果建立成功,说明数据已经连上。
 * 该通道是Socket流,是底层建立好的,可以通过Socket对象获取输入和输出流对象。
 * 通过getoutputstream()和getinputstream()来获取。
 * 
 * 3、将数据通过流对象发送出去;
 * 
 * 4、关闭socket流。
 * 
 * */

public class ClientDemo {

	public static void main(String[] args) throws UnknownHostException, IOException {
		
//		1、建立socket服务
		Socket st=new Socket("192.168.1.216",10012);
		
//		2、获取输出流
		OutputStream os=st.getOutputStream();
		
//		3、将数据写到流上
		os.write("tcp客户端:我来了!!!".getBytes());

//		4、读取服务端发过来的数据
		InputStream is=st.getInputStream();

//		5、将数据保存下来
		byte[]buff=new byte[1024];
		int len=is.read(buff);
		String txt=new String(buff, 0, len);
	
//		6、将数据打印
		System.out.println(txt);				
		
//		4、关闭流
		st.close();
		
	}
}

猜你喜欢

转载自blog.csdn.net/TDOA1024/article/details/82829829