一、TCP编程
1、实现客户端向服务端发送一条消息
server.java:
public class Server {
public static void main(String[] args) throws IOException {
//开放本地端口,等待客户端的连接
ServerSocket serverSocket = new ServerSocket(8888);
//需要接受客户端传输过来的数据,所以需要Socket对象
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
String s = dataInputStream.readUTF();
System.out.println(s);
//关闭流
dataInputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
}
}
client.java:
public class Client {
public static void main(String[] args) throws IOException {
//开启实现IO(数据传输)的虚拟接口,并且执行目标端的ip地址和端口号
Socket socket = new Socket("localhost",8888);
//获取输出流对象,向服务端发送数据
OutputStream outputStream = socket.getOutputStream();
//封装输出流对象,方便操作
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.writeUTF("hello world");
//关闭资源
dataOutputStream.close();
outputStream.close();
socket.close();
}
}
2、实现客户端与服务端的相互通信(一次)
server.java:
public class Server {
public static void main(String[] args) throws IOException {
//开放本地端口,等待客户端的连接
ServerSocket serverSocket = new ServerSocket(8888);
//需要接受客户端传输过来的数据,所以需要Socket对象
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte[] buf = new byte[1024];
int length = inputStream.read(buf);
System.out.println("客户端发送过来的消息:"+new String(buf,0,length));
OutputStream outputStream = socket.getOutputStream();
outputStream.write("我已经收到消息了".getBytes());
//关闭流
outputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
}
}
client.java:
public class Client {
public static void main(String[