package com.prosay.network;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
/*1:建立socket服务,明确要联接的服务器
2:创建传递数据的IO流,该通道成为socket流,socket流中既有读取流,也有写入流
3:通过socket对象的方法,获取这两个流
4,通过流的对象可以对数据进行传输。
5,关闭资源*/
public class Tcp {
public static void main(String[] args) throws UnknownHostException, IOException {
//1.建立socket服务,明确要联接的服务器
String ip = "localhost";
int port = 7100;
Socket sc = new Socket(ip, port);
// 2:创建传递数据的IO流,该通道成为socket流,socket流中既有读取流,也有写入流
//3:通过socket对象的方法,获取这两个流
DataInputStream dis = new DataInputStream(new BufferedInputStream(sc.getInputStream()));
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(sc.getOutputStream()));
//4,通过流的对象可以对数据进行传输。
// (模拟查询学生信息)
Scanner scanner =new Scanner(System.in);
boolean quit = false;
while(!quit) {
System.out.println("清输入您要查询的学号信息,回车提交");
String num =scanner.next();
dos.writeUTF(num);
dos.flush(); // 强制提交
String readUTF = dis.readUTF();
System.out.println("您输入信息为:"+num +"对应信息"+readUTF);
while(true) {
System.out.println("是否继续查询?(Y/N) 继续Y 退出N");
String next = scanner.next();
if("n".equalsIgnoreCase(next)) {
quit = true;
break;
} else if("y".equalsIgnoreCase(next)) {
break;
}
}
}
sc.close();
dis.close();
dos.close();
scanner.close();
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
/*1:建立socket服务,明确要联接的服务器
2:创建传递数据的IO流,该通道成为socket流,socket流中既有读取流,也有写入流
3:通过socket对象的方法,获取这两个流
4,通过流的对象可以对数据进行传输。
5,关闭资源*/
public class Tcp {
public static void main(String[] args) throws UnknownHostException, IOException {
//1.建立socket服务,明确要联接的服务器
String ip = "localhost";
int port = 7100;
Socket sc = new Socket(ip, port);
// 2:创建传递数据的IO流,该通道成为socket流,socket流中既有读取流,也有写入流
//3:通过socket对象的方法,获取这两个流
DataInputStream dis = new DataInputStream(new BufferedInputStream(sc.getInputStream()));
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(sc.getOutputStream()));
//4,通过流的对象可以对数据进行传输。
// (模拟查询学生信息)
Scanner scanner =new Scanner(System.in);
boolean quit = false;
while(!quit) {
System.out.println("清输入您要查询的学号信息,回车提交");
String num =scanner.next();
dos.writeUTF(num);
dos.flush(); // 强制提交
String readUTF = dis.readUTF();
System.out.println("您输入信息为:"+num +"对应信息"+readUTF);
while(true) {
System.out.println("是否继续查询?(Y/N) 继续Y 退出N");
String next = scanner.next();
if("n".equalsIgnoreCase(next)) {
quit = true;
break;
} else if("y".equalsIgnoreCase(next)) {
break;
}
}
}
sc.close();
dis.close();
dos.close();
scanner.close();
}
}