一,socket协议介绍
- 在计算机网络中,Socket(套接字)是一种通信机制。
- Socket是对TCP/IP协议的封装。
- HTTP协议是应用层协议,更标准,方便。
- Socket协议更底层、更通用。
二,应用场景
- 直接应用:特定的物联网应用中,需要与底层硬件或其他系统进行直接的、定制化的通信。
- 间接应用:大部分的协议都是基于 Socket 协议进行抽象优化,比如HTTP协议。
三,实现方案
import java.io.*;
import java.net.Socket;
public class SocketClass {
public String sendSocket(String sendData){
String hostName = "socket.hogwarts.ceshiren.com";
int port = 30001;
String response = null;
//建立socket连接
try {
Socket socket = new Socket(hostName, port);
//获取输入流和输出流
OutputStream outputStream = socket.getOutputStream();
DataOutputStream out = new DataOutputStream(outputStream);
InputStream inputStream = socket.getInputStream();
DataInputStream input = new DataInputStream(inputStream);
// 向服务器发送数据
out.writeUTF(sendData);
System.out.println("发送消息给服务器:" + sendData);
//从服务器接收数据
response = input.readUTF();
System.out.println("从服务器接收到的消息:" + sendData);
//关闭连接
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
return response ;
}
}
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class SocketClassTest {
@Test
void sendSocket() {
SocketClass socketClass = new SocketClass();
String res = socketClass.sendSocket("hogwarts测试开发");
assertEquals("hogwarts测试开发",res);
}
}