TCP协议实现通信
Socket类:该类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通讯的端点。
方法:
getInetAddress() 返回套接字所连接的地址。
getInputStream()返回此套接字的输入流
Inetaddress类:此类表示Internet协议(IP)地址。
提供的方法:
-
- getAddress()返回此 InetAddress对象的原始IP地址。
- getByName(String host)确定主机名称的IP地址。
利用tcp协议实现客户端与服务器端的连接实际上就是利用Io流来实现的,代码如下:
package Inetcode;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
//客户端
public class Client {
public static void main(String[] args) {
Socket socket =null;
OutputStream os =null;
//第一步:要知道服务器的地址,端口号
try {
InetAddress severip = InetAddress.getByName("127.0.0.1");
int port= 999;
//第二步:创建一个socket连接
socket = new Socket(severip,port);
//第三步:使用Io流发送消息
os = socket.getOutputStream();
os.write("怎么了?".getBytes());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (os!=null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package Inetcode;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Sever {
public static void main(String[] args){
ServerSocket serverSocket =null;
Socket socket =null;
InputStream is =null;
ByteArrayOutputStream baos =null;
//第一步:有一个地址
try {
serverSocket = new ServerSocket(999);
//第二步:等待客户端连接
socket = serverSocket.accept();//监听accept
//第三步:读取客户端消息
is = socket.getInputStream();
baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len=is.read(buffer))!=-1){
baos.write(buffer,0,len);
System.out.println(baos.toString());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (baos!=null){
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (is!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (serverSocket!=null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!