服务端接收到客户端发送的文件名,并把文件的内容返回给客户端
2016-06-21 07:09
501 查看
/**
* 1.使用socket客户端,连接已经开发好的服务端
* 2.实现不断地发送内容到服务端、
* 3.并且把服务端返回过来的消息打印出来
* @author JeffChen
*
*/
public class ClientSocket {
public static void client(String address,int port){
//定义变量
Socket socket = null;
//输入、输出流
InputStream keyboardIn = null;
OutputStream out = null;
//
Scanner s = null;
PrintWriter pw = null;
try {
//1:建立与服务端的连接
socket = new Socket(address,port);
//2:从键盘循环读取内容
keyboardIn = System.in;
s = new Scanner(keyboardIn);
while(s.hasNext()){
String keyboardWord = s.nextLine();
//3:发送内容到服务端
out = socket.getOutputStream();
pw = new PrintWriter(out);
pw.println(keyboardWord);
pw.flush();
//4:从服务端读取内容
Scanner ss = new Scanner(socket.getInputStream());
while(ss.hasNext()){
String str = ss.nextLine();
if(str.contains("--end--")){
break;
}
if(str.contains("File does not exist")){
System.out.println(str);
break;
}
System.out.println(str);
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭所有的连接
try {
pw.close();
out.close();
s.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
String address = "192.168.1.130";
int port = 6666;
client(address,port);
}
}
//服务端
public class ScoketService {
public static void server() {
System.out.println("-------------服务已启动-------------");
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(6666);
while (true) {
//接收一个客户端的连接
Socket socket = serverSocket.accept();
// 获取ip地址
InetAddress sourceIp = socket.getInetAddress();
System.out.println(sourceIp);
InputStream is = socket.getInputStream();
Scanner s = new Scanner(is);
OutputStream out = socket.getOutputStream();
while (s.hasNext()) {
// 1:我们拿到了客户端输入来的信息
String str = s.nextLine();
System.out.println(str);
// 2:根据文件名,从文件里取出数据
String fileContent = "";
fileContent = getContentFromFile(str);
// 3:发送内容到客户端(回应一下客户)
PrintWriter pw = new PrintWriter(out);
pw.println(fileContent);
pw.flush();
}
is.close();
socket.close();
System.out.println(sourceIp+"已下线");
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 根据文件名,取出文件中的内容
* @param filePath
* @return
*/
public static String getContentFromFile(String filePath) {
if(filePath.equals("ips.txt")){
String content ="";
try {
Scanner s = new Scanner(new File(filePath));
while(s.hasNext()){
content+=s.nextLine()+"\n";
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return content;
}else{
return "File does not exist!!!!!!!!! ";
}
}
public static void main(String[] args) {
server();
}
}
* 1.使用socket客户端,连接已经开发好的服务端
* 2.实现不断地发送内容到服务端、
* 3.并且把服务端返回过来的消息打印出来
* @author JeffChen
*
*/
public class ClientSocket {
public static void client(String address,int port){
//定义变量
Socket socket = null;
//输入、输出流
InputStream keyboardIn = null;
OutputStream out = null;
//
Scanner s = null;
PrintWriter pw = null;
try {
//1:建立与服务端的连接
socket = new Socket(address,port);
//2:从键盘循环读取内容
keyboardIn = System.in;
s = new Scanner(keyboardIn);
while(s.hasNext()){
String keyboardWord = s.nextLine();
//3:发送内容到服务端
out = socket.getOutputStream();
pw = new PrintWriter(out);
pw.println(keyboardWord);
pw.flush();
//4:从服务端读取内容
Scanner ss = new Scanner(socket.getInputStream());
while(ss.hasNext()){
String str = ss.nextLine();
if(str.contains("--end--")){
break;
}
if(str.contains("File does not exist")){
System.out.println(str);
break;
}
System.out.println(str);
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭所有的连接
try {
pw.close();
out.close();
s.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
String address = "192.168.1.130";
int port = 6666;
client(address,port);
}
}
//服务端
public class ScoketService {
public static void server() {
System.out.println("-------------服务已启动-------------");
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(6666);
while (true) {
//接收一个客户端的连接
Socket socket = serverSocket.accept();
// 获取ip地址
InetAddress sourceIp = socket.getInetAddress();
System.out.println(sourceIp);
InputStream is = socket.getInputStream();
Scanner s = new Scanner(is);
OutputStream out = socket.getOutputStream();
while (s.hasNext()) {
// 1:我们拿到了客户端输入来的信息
String str = s.nextLine();
System.out.println(str);
// 2:根据文件名,从文件里取出数据
String fileContent = "";
fileContent = getContentFromFile(str);
// 3:发送内容到客户端(回应一下客户)
PrintWriter pw = new PrintWriter(out);
pw.println(fileContent);
pw.flush();
}
is.close();
socket.close();
System.out.println(sourceIp+"已下线");
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 根据文件名,取出文件中的内容
* @param filePath
* @return
*/
public static String getContentFromFile(String filePath) {
if(filePath.equals("ips.txt")){
String content ="";
try {
Scanner s = new Scanner(new File(filePath));
while(s.hasNext()){
content+=s.nextLine()+"\n";
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return content;
}else{
return "File does not exist!!!!!!!!! ";
}
}
public static void main(String[] args) {
server();
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Linux socket 初步
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序