三块内容:
一、登陆模拟
模拟登陆,返回登录信息
LoginTwoWayClient.java
package com.sxt.loc;
import java.io.*;
import java.net.Socket;
/**
*模拟登陆双向
*/
public class LoginTwoWayClient {
public static void main(String[] args) throws IOException {
System.out.println("---client---");
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入用户名");
String uname = console.readLine();
System.out.println("请输入密码");
String upwd = console.readLine();
//建立连接,使用Scoket创建客户端 + 服务的地址和端口
Socket client = new Socket("localhost", 8888);
DataOutputStream dos = new DataOutputStream(client.getOutputStream());
dos.writeUTF("uname=" + uname + "&" + "upwd=" + upwd);
dos.flush();
DataInputStream dis = new DataInputStream(client.getInputStream());
String reslut = dis.readUTF();
System.out.println(reslut);
dos.close();
client.close();
}
}
LoginTwoWayServer.java
package com.sxt.loc;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class LoginTwoWayServer {
public static void main(String[] args) throws IOException {
System.out.println("---Server---");
ServerSocket server = new ServerSocket(8888);
String uname = "";
String upwd = "";
Socket client = server.accept();
System.out.println("一个客户端建立起来了---");
DataInputStream dis = new DataInputStream(client.getInputStream());
String datas = dis.readUTF();
String[] dataArray = datas.split("&");
for (String info:dataArray) {
String[] userinfo = info.split("=");
if (userinfo[0].equals("uname")){
System.out.println("你的用户名是=" + userinfo[1]);
uname = userinfo[1];
}else if(userinfo[0].equals("upwd")){
System.out.println("你的密码是=" + userinfo[1]);
upwd = userinfo[1];
}
}
DataOutputStream dos = new DataOutputStream(client.getOutputStream());
if (uname.equals("123") && upwd.equals("abc")){
dos.writeUTF("输入正确");
}else{
dos.writeUTF("输入错误");
}
dis.close();
client.close();
}
}
二、图片上传
FileClient.java
package com.sxt.loc;
import javax.jnlp.FileContents;
import java.io.*;
import java.net.Socket;
/**
*模拟登陆单向
*/
public class FileClient {
public static void main(String[] args) throws IOException {
System.out.println("---client---");
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
//建立连接,使用Scoket创建客户端 + 服务的地址和端口
Socket client = new Socket("localhost", 8888);
InputStream dis = new BufferedInputStream(new FileInputStream("p.jpg"));
OutputStream dos = new BufferedOutputStream(client.getOutputStream());
byte[] flush = new byte[1024];
int len = -1;
while((len = dis.read(flush))!=-1){
dos.write(flush, 0 ,len);
}
dos.flush();
dos.close();
client.close();
}
}
FileServer.java
package com.sxt.loc;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class FileServer {
public static void main(String[] args) throws IOException {
System.out.println("---Server---");
ServerSocket server = new ServerSocket(8888);
Socket client = server.accept();
System.out.println("一个客户端建立起来了---");
InputStream dis = new BufferedInputStream(client.getInputStream());
OutputStream dos = new BufferedOutputStream(new FileOutputStream("p-1.jpg"));
byte[] flush = new byte[1024];
int len = -1;
while((len = dis.read(flush))!=-1){
dos.write(flush, 0 ,len);
}
dis.close();
client.close();
}
}
相当于拷贝图片,但是用到了TCP