Java之Tcp基础
原创
©著作权归作者所有:来自51CTO博客作者Aonaufly的原创作品,请联系作者获取转载授权,否则将追究法律责任
一,基础
1,服务端
package net.ittimeline.java.network.socket.tcp;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Tcp服务器
* 1,指定端口 使用ServerSocket创建服务器
* 2,阻塞式等待连接 accept
* 3,操作:输入输出流操作
* 4,释放资源
*/
public class TcpServer {
public static void main(String[] args) {
try {
// 1,指定端口 使用ServerSocket创建服务器
ServerSocket server = new ServerSocket(8888);
// 2,阻塞式等待连接 accept
Socket client = server.accept();//进入了一个client
// 3,操作:输入输出流操作
DataInputStream dis = new DataInputStream(client.getInputStream());
String data = dis.readUTF();
System.out.println(data);
// 4,释放资源
dis.close();
client.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2,客户端
package net.ittimeline.java.network.socket.tcp;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
/**
* 创建客户端
* 1,使用Socket创建客户端: 建立链接 (需要服务器服务器的地址和端口)
* 2,操作:输入输出流控制
* 3,释放资源
*/
public class TcpClient {
public static void main(String[] args) {
try {
//1,使用Socket创建客户端: 建立链接 (需要服务器服务器的地址和端口)
Socket client = new Socket("localhost",8888);
// 2,操作:输入输出流控制
DataOutputStream dos = new DataOutputStream(client.getOutputStream());
String data = "hello";
dos.writeUTF(data);
dos.flush();
// 3,释放资源
dos.close();
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3,结果
3.1 , 说明:客户端连接到服务端后,发了一个“hello”信息
3.2 ,图片