JAVA网络服务已经不是第一次学习,但是每次长时间不用就会忘,现在来做一下总结和整理。
TCP协议
Tcp协议是一种以固连接线为基础的协议,它提供了两个计算机之间的可靠连接。
TCP文章
1.建立连接
服务器首先打开端口,对端口进行监听,客户端要连接服务端对时候,首先是对服务器进行的端口进行请求。然后进入三次握手。
2.释放连接
数据传输结束后,通信双方都可以释放连接。进入四次分手
创建套接字 – ServerSocket类
ServerSocket类用于表示服务器套接字,其主要功能就是等待来自网络的“请求”,他可以通过制定的端口来等待连接的套接字。服务器套接字一次可以与一个套接字连接。如果多台客户同时提出连接请求,服务器套接字就会将请求连接的客户机存放如列队中,然后在取出一个套接字,与服务器新建的套接字连接起来,java默认是50.
服务器
package com.examplex.demox.Service;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import static java.lang.Thread.sleep;
public class MyTcp {
private BufferedReader reader; //创建BufferedReader对象
private ServerSocket server; //创建ServerSocket对象
private Socket socket; //创建Socket对象
void getserver(){
try{
server = new ServerSocket(8998); //实例化Socket对象
System.out.println("服务器套接字创建成功");
while(true){
System.out.println("等待客户机连接");
socket = server.accept(); //创建套接字
reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //实例话BufferedReader对象
getClientMessage();
}
}catch (Exception e){
e.printStackTrace();
}
}
private void getClientMessage(){
try{
int i = 0;
while(true){
//获取客户端信息
sleep(1000);
System.out.println("客户机:"+ i++ +":"+ reader.readLine());
}
}catch (Exception e){
e.printStackTrace();
}
try{
if(reader != null){
reader.close(); //关闭流
}
if(socket != null){
socket.close(); //关闭套接字
}
}catch (IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
MyTcp myTcp = new MyTcp();
myTcp.getserver();
}
}
客户机
package com.examplex.demox.Service;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class MyClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1",8998);
// PrintWriter printWriter = new PrintWriter(,true);
OutputStream outputStream = socket.getOutputStream();
String str = "梅花香自苦寒来";
System.out.println(str);
outputStream.write(str.getBytes());
outputStream.close();
socket.close();
}
}
思路整理:
服务器:
1.服务器端创建ServerSocket实体类
2.通过.accept()创建套接字
3.用BufferReader和InputStreamReader来读取数据
客户机:
1.客户机创建Socket实体类
2.通过Socket创建OutputStream实体类
3.然后再通过.writer()将数据传入服务器