java tcp方式传输数据 网络编程

概念

tcp协议传输数据比较稳定,开始传输数据前,客户端会有服务端进行三次握手,客户端向服务端发送数据包,服务端向客户端回复数据包,客户端再向服务端回复数据包,以此确保服务端可以接收数据,之后才开始传输数据。而udp协议是发送端直接向接收端传递数据,没有服务端,并且发送端只管发送,不管接收端是否可以接收。

tcp实例

客户端

package com.test.tcpTest;

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

public class TcpClient {
    
    

	/**
	 * @param args
	 */
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub

		//tcp客户端
		
		//1.创建客户端  指定服务器端的ip和端口号
		try {
    
    
			Socket socket=new Socket("192.168.8.4", 8899);
			
			//返回客户端的字节输出流对象
			OutputStream os= socket.getOutputStream();
			
			//2.发送数据到服务器端
			os.write("tcp你好".getBytes());
			
			
			//也可以接收服务端的反馈信息
			InputStream is= socket.getInputStream();
			
			byte[] data=new byte[1024];
			
			is.read(data);
			
			System.out.println("得到服务器反馈回来的消息:"+new String(data));
			
			//3.关闭客户端
			socket.close();
			
		} catch (UnknownHostException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

}

服务端

package com.test.tcpTest;

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

public class TcpServer {
    
    

	/**
	 * @param args
	 */
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub

		//服务器端
		 try {
    
    
			 //1.创建服务器端socket
			ServerSocket serverSocket=new ServerSocket(8899);
			
			//2.接收客户端
			 Socket socket=  serverSocket.accept();
			 
			 //3.拿到客户端的消息
			 InputStream is= socket.getInputStream();
			 
			 byte[] data=new byte[1024];
			 
			 is.read(data);
			 
			 System.out.println("来自客户端的消息:"+new String(data));
			 
			 //4.给客户端发送反馈信息
			 OutputStream os= socket.getOutputStream();
			 os.write("你好,收到你的消息了".getBytes());
			 
			 //4.关闭客户端 
			 socket.close();
			 
			 //5.关闭服务器端
			 //serverSocket.close();
			
			
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 
		
		
	}

}

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Rockandrollman/article/details/130495884