今天学长上了多线程的课程,内容挺广泛的,部分也需要实际运用到项目中来,但我的登录、注册实现还没区分开服务端和客户端(仅在同一项目里实现)
----------------------------------------------------------------------------------
输送数据:
利用TCP实现服务端和用户端传数据,需要先了解TCP的基本概念和步骤。
TCP(传输控制协议)是一种面向连接的协议,它保证数据在传输过程中的可靠性和顺序性。TCP连接的建立过程如下:
-
服务端启动并监听指定的端口。
-
用户端发起连接请求,请求连接到服务端的指定IP地址和端口。
-
服务端收到连接请求,创建新的Socket,并返回一个成功的连接响应给用户端。
-
用户端接收到连接响应,创建新的Socket,并与服务端建立连接。
-
服务端和用户端之间开始数据传输。
-
连接结束时,服务端和用户端均可以关闭连接。
在服务端和用户端之间传输数据:
客户端:
package True;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
public class ccc {
public static void main(String[] args) throws Exception{
Socket socket=new Socket("127.0.0.1",10000);
OutputStream os=socket.getOutputStream();
os.write("您好你好".getBytes(StandardCharsets.UTF_8));
os.close();
socket.close();
}
}
服务端:
package Socoket;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class aaccept {
public static void main(String[] args) throws IOException {
//1.创建对象
ServerSocket ss = new ServerSocket(10000);
while (true) {
Socket socket = ss.accept();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
int b;
while ((b = isr.read()) != -1) {
System.out.print((char) b);
}
}
}
}
明天再把客户端服务端分开来