Java网络通信

Java网络通信

TCP

什么是TCP?

答:TCP(英语:Transmission Control Protocol,传输控制协议) 是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP 层是位于 IP 层之上,应用层之下的中间层。TCP 保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。

UDP

什么是UDP?

答:UDP (英语:User Datagram Protocol,用户数据报协议),位于 OSI 模型的传输层。一个无连接的协议。提供了应用程序之间要发送数据的数据报。由于UDP缺乏可靠性且属于无连接协议,所以应用程序通常必须容许一些丢失、错误或重复的数据包。

Socket

什么是Socket?

答:套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字,并尝试连接服务器的套接字。

怎么使用Socket实现TCP?

package com.linx;

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

public class TCPServer {
    public static void main(String[] args) throws IOException{
    	int port = 8888;
    	//1.新建服务端套接字
        ServerSocket serverSocket = new ServerSocket(port);
        //4.接收客户端发送的文字
        Socket accept = serverSocket.accept();
        InputStream inputStream = accept.getInputStream();
        //5.读取客户端发送的文字
        byte[] b = new byte[1024];
        int read = inputStream.read(b);
        System.out.println(new String(b,0,read));
        //6.发送文字给客户端
        OutputStream outputStream = accept.getOutputStream();
        outputStream.write("收到谢谢".getBytes());
        //10.关闭
        accept.close();
        serverSocket.close();
    }
}
package com.linx;

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

public class TCPClient {
    public static void main(String[] args) throws UnknownHostException, IOException {
    	String host = "127.0.0.1";//IP地址
    	int post = 8888;//端口号
    	//2.新建套接字
        Socket socket = new Socket(host,post);
        //3.发送文字给服务端
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("你好服务器".getBytes());
        //7.接收服务端发送的文字
        InputStream inputStream = socket.getInputStream();
        //8.读取服务端发送的文字
        byte[] b = new byte[1024];
        int read = inputStream.read(b);
        System.out.println(new String(b,0,read));
        //9.关闭
        outputStream.close();
    }
}

怎么使用Socket实现UDP?

package com.linx;


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class TCPServer {
	public static void main(String[] args) throws IOException {
		//1.新建服务端DatagramSocket
		DatagramSocket server = new DatagramSocket(5060);
		//2.新建服务端DatagramPacket
		DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);
		//7.服务端接收客户端数据包
		server.receive(packet);
		//8.服务端读取客户端数据包
		System.out.println(
				packet.getAddress().getHostName() + "(" + packet.getPort() + "):" + new String(packet.getData()));
		//9.服务端编辑数据包
		packet.setData("Hello Client".getBytes());
		packet.setPort(5070);
		packet.setAddress(InetAddress.getLocalHost());
         //10.服务端发送数据包给客户端
		server.send(packet);
         //10.关闭
		server.close();
	}
}
package com.linx;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class TCPClient {
	public static void main(String[] args) throws IOException {
		//3.创建客户端DatagramSocket
		DatagramSocket client = new DatagramSocket(5070);
		//4.创建客户端DatagramPacket
		DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);
		//5.编辑客户端DatagramPacket
		packet.setPort(5060);
		packet.setAddress(InetAddress.getLocalHost());
		packet.setData("Hello Server".getBytes());
		//6.发送数据包给服务端
		client.send(packet);
		//11.客户端接收服务端数据包
		client.receive(packet);
         //12.客户端读取服务端数据包
		System.out.println(
				packet.getAddress().getHostName() + "(" + packet.getPort() + "):" + new String(packet.getData()));
         //13.关闭
		client.close();
	}
}

HttpClient

什么是HttpClient?

答:HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

怎么使用HttpClient?

//之后补充
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值