本篇文章旨在复习一下java网络编程的TCP协议的使用,通过构造一个简易的客户端和服务器端来实现信息的传输
一.服务端的实现过程(读取客户端发送的信息,并给客户端回写请求):
- 利用ServerSocket创建一个服务端对象serversocket,并申请指定的端口号
- 使用serversocket对象中的accept()方法来获取请求客户端的对象socket
- 调用socket对象的getInputStream()来获取网络字节输入流的InputStream对象
- 调用inputStream对象的read()方法来获取请求客户端发送的信息
- 调用outputStream对象的write()方法来回写数据
- 释放资源
public class TcpServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(8888);
Socket socket=serverSocket.accept();
InputStream inputStream=socket.getInputStream();
byte []bytes=new byte[1024];
int len=inputStream.read(bytes);
System.out.println("收到的信息是:"+new String(bytes,0,len));
OutputStream outputStream=socket.getOutputStream();
outputStream.write("收到信息,谢谢".getBytes());
socket.close();
serverSocket.close();
}
}
二.客户端的实现过程(给服务端发送信息,并接受服务端的返回信息)
- 利用Socket来创建服务端对象,并绑定服务器的ip地址和端口号
- 利用Socket对象中的方法getOutStream()来获取网络字节输出流OutputStream对象
- 使用outputStream中的write方法,给服务器发送数据
- 使用Socket对象中的方法getInputStream获取网络输入流InputStream
- 使用InputStream对象中的read方法,读取服务器的回写数据
- 释放资源
public class TcpClient {
public static void main(String[] args) throws IOException {
Socket socket=new Socket(InetAddress.getLocalHost(),8888);
OutputStream outputStream=socket.getOutputStream();
outputStream.write("你好服务器".getBytes());
InputStream inputStream=socket.getInputStream();
byte []bytes=new byte[2014];
int len=inputStream.read(bytes);
System.out.println("收到的信息为:"+new String(bytes,0,len));
socket.close();
}
}
此为复习网络编程的第一部分笔记,若有错误,请指正,万分感谢!