TCP Socket ServerSocket accept建立连接后,剩下的都是IO流操作
* 网络登录功能分解
* 1.单向:客户端向服务器端发送字符串,服务器获取字符串并输出
* 2.双向:服务器端给客户端反馈,客户端得到反馈并输出
* 3.文件:客户端向服务器端上传文件,服务器端获取文件并反馈结果
* 4.多线程:服务器接收多个客户端的请求,并给出反馈,每个客户请求开启一个线程
单向
Cilent
package TCP;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
/**
* * 网络登录功能分解
* 1.单向:客户端向服务器端发送字符串,服务器获取字符串并输出
* 2.双向:服务器端给客户端反馈,客户端得到反馈并输出
* 3.文件:客户端向服务器端上传文件,服务器端获取文件并反馈结果
* 4.多线程:服务器接收多个客户端的请求,并给出反馈,每个客户请求开启一个线程
*
* 模拟登录 单向
* TCP流程 创建客户端
* 1.建立连接:使用Socket创建客户端+服务器地址+端口
* 2.操作:输入输出流操作
* 3.释放资源
* @author pmc
*
*/
public class TCPTalkLoginClient {
public static void main(String[] args) throws IOException {
System.out.println("-----Client-----");
BufferedReader cos=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入用户名:");
String name=cos.readLine();
System.out.print("请输入密 码:");
String pwd=cos.readLine();
// 1.建立连接:使用Socket创建客户端+服务器地址+端口
Socket client=new Socket("localhost",8888);
// 2.操作:输入输出流操作
DataOutputStream out=new DataOutputStream( client.getOutputStream());
out.writeUTF("name="+name+"&"+"pwd="+pwd);
out.flush();
// 3.释放资源
out.close();
client.close();
}
}
Server
package TCP;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
/**
* * 网络登录功能分解
* 1.单向:客户端向服务器端发送字符串,服务器获取字符串并输出
* 2.双向:服务器端给客户端反馈,客户端得到反馈并输出
* 3.文件:客户端向服务器端上传文件,服务器端获取文件并反馈结果
* 4.多线程:服务器接收多个客户端的请求,并给出反馈,每个客户请求开启一个线程
*
* 模拟登录 单向
* TCP流程 创建服务器
* 1.指定端口使用ServerSocket创建服务器
* 2.阻塞式等待连接accept
* 3.操作:输入输出流操作
* 4.释放资源
* @author pmc
*
*/
public class TCPTalkLoginServer {
public static void main(String[] args) throws IOException {
// 1.指定端口只用ServerSocket创建服务器
ServerSocket server=new ServerSocket(8888);
// 2.阻塞式等待连接accept/浏览器访问localhost:8888
Socket client=server.accept();
System.out.println("-----Server-----");
// 3.操作:输入输出流操作
DataInputStream in=new DataInputStream(client.getInputStream());
String data=in.readUTF();
// System.out.println(data);
// 分析数据
String[] dataArray=data.split("&");
for(String temp:dataArray){
String[] info=temp.split("=");
if(info[0].equals("name")){
System.out.printl