一、流程图
二、操作步骤
1.运行SERVER。
2.运行CLIENT。
3.连接建立成功后,在CLIENT窗口提示“连接成功!请输入密码:”。
4.在CLIENT命令行中输入密码,密码123456。
5.在SERVER接收密码并判断,若密码正确,向CLIENT返回:“Correct password!”。若密码错误,向CLIENT返回“Wrong password”。
三、源代码
1.TCPServer
package TCP;
import java.io.*;//包含输入流类和输出流类
import java.net.*;//提供支持网络功能的类
class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence;//客户机发送内容
String capitalizedSentence;
ServerSocket welcomeSocket=new ServerSocket(6789);//定义服务器端口号
while(true) {//连接
Socket connectionSocket=welcomeSocket.accept();//连接套接字
BufferedReader inFromClient=new BufferedReader(//存储从读取到的数据的变量
new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient=new DataOutputStream(//写到客户端的数据变量
connectionSocket.getOutputStream());
clientSentence=inFromClient.readLine();
String str2=clientSentence;
// System.out.println(str2);//显示收到的数据,应当变成大写
if(str2.equals("123456")){ //进行比较
capitalizedSentence="Correct password! "+'\n';//密码正确,输出密文。
}
else capitalizedSentence="Wrong password"+'\n'; //密码错误,提示
System.out.println(capitalizedSentence);
outToClient.writeBytes(capitalizedSentence);//返回给客户端
}
}
}
2.TCPClient
package TCP;
import java.io.*;//包含输入流类和输出流类
import java.net.*;//提供支持网络功能的类
class TCPClient {
public static void main(String argv[]) throws Exception
{
String sentence;//用户输入和送到服务器的字符串
String modifiedSentence; //服务器得到并送到用户标准输出的字符串
BufferedReader inFromUser=new BufferedReader(//键盘输入
new InputStreamReader(System.in)); //字符输入流,将流连接初始化,到标准输入
Socket clientSocket=new Socket(InetAddress.getLocalHost(),6789);//套接字建立时主机地址
System.out.println("连接成功!请输入密码:");//连接成功后提示输入密码
DataOutputStream outToServer=new DataOutputStream(
clientSocket.getOutputStream());//字符输出流,向服务器发送的内容的变量
BufferedReader inFromServer=new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));//为进程提供了来自套接字的输入
sentence=inFromUser.readLine();//从键盘读
outToServer.writeBytes(sentence+'\n');//到服务器
modifiedSentence=inFromServer.readLine();
// System.out.println("FROM SERVER: "+modifiedSentence);//显示收到的数据,应当变成大写
clientSocket.close();//关闭套接字,只能发送一个报文
}
}
就是这样啦!有错误欢迎大家指出~