一.TCP传输(Socket和ServerSocket)流程:
1. 建立客户端(Socket)和服务端(ServerSocket)等
2. 建立连接后,通过Socket的Io流进行数据传输
3. 关闭Socket
二.TCP客户端:
建立步骤:
1. 创建Socket并绑定服务端监听端口
2. 得到Socket输出流
3. 向服务端发送数据
4. 关闭资源
示例代码:
public class TCP_client {
public static void main(String[] args) {
Socket s = null;
try {
//1.创建Socket并绑定服务端监听端口
s = new Socket("localhost", 10001);
//2.得到Socket输出流
OutputStream os = s.getOutputStream();
//3.向服务端发送数据
byte[] buff = "TCP测试".getBytes();
os.write(buff);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(s != null){
try {
//4.关闭资源
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
三.TCP服务端:
建立步骤:
1.创建服务端并绑定监听端口
2.接收客户端数据,accept是阻塞方法
3.得到输入流,用客户端的输入流读客户端发送过来的数据
4.关闭资源(正规服务器是不关闭的)
示例代码:
class TCPServer{
public static void main(String[] args){
try {
//1.创建服务端并绑定监听端口
ServerSocket ss = new ServerSocket(10001);
//2.接收客户端数据,是阻塞方法
Socket s = ss.accept();
System.out.println(s.getInetAddress().getHostAddress());
//3.得到输入流,用客户端的输入流读客户端发送过来的数据
InputStream is = s.getInputStream();
byte[] buff = new byte[1024];
int len = is.read(buff);
System.out.println(new String(buff,0,len));
//关闭资源(正规服务器是不关闭的)
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}