修改计算机网路

This commit is contained in:
xiongraorao
2018-08-27 23:22:27 +08:00
parent d0a13478d4
commit 752f22eae5
11 changed files with 405 additions and 16 deletions

View File

@ -0,0 +1,11 @@
package com.raorao.interview.toutiao;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-25-10:02
*/
public class T {
}

View File

@ -0,0 +1,25 @@
package com.raorao.interview.toutiao.t1;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-25-10:02
*/
public class Main {
public static void main(String[] args) {
}
private static void process(boolean[][] arr) {
int num = 1;
int m = arr.length;
int n = arr[0].length;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
}
}
}
}

View File

@ -0,0 +1,88 @@
package com.raorao.interview.toutiao.t2;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 字符串.
*
* @author Xiong Raorao
* @since 2018-08-25-10:31
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int t = Integer.parseInt(scanner.nextLine());
List<String> ret = new ArrayList<>();
List<List<String>> inputs = new ArrayList<>();
for (int i = 0; i < t; i++) {
int n = Integer.parseInt(scanner.nextLine());
List<String> temp = new ArrayList<>();
while (n-- > 0) {
temp.add(scanner.nextLine());
}
inputs.add(temp);
}
for (List<String> list : inputs) {
ret.add(process(list));
}
for (String s : ret) {
System.out.println(s);
}
}
private static String process(List<String> strings) {
List<String> ret = new ArrayList<>();
for (int i = 0; i < strings.size(); i++) {
for (int j = i + 1; j < strings.size(); j++) {
ret.add(process(strings.get(i), strings.get(j)));
}
}
for (String s:ret){
if (s.equals("Yeah")){
return "Yeah";
}
}
return "Sad";
}
private static String process(String s1, String s2) {
char start = s2.charAt(0);
List<String> starts = find(s1, start);
for (String s : starts) {
if (s.equals(s2)) {
return "Yeah";
}
}
return "Sad";
}
private static List<String> find(String s1, char start) {
List<String> ret = new ArrayList<>();
for (int i = 0; i < s1.length(); i++) {
if (start == s1.charAt(i)) {
String tmp1 = s1.substring(i + 1, s1.length());
String tmp;
if (i == 0) {
tmp = tmp1;
} else {
tmp = tmp1 + s1.substring(0, i);
}
ret.add(start + tmp);
ret.add(start + invert(tmp));
}
}
return ret;
}
private static String invert(String s) {
StringBuilder sb = new StringBuilder();
for (int i = s.length() - 1; i >= 0; i--) {
sb.append(s.charAt(i));
}
return sb.toString();
}
}

View File

@ -0,0 +1,67 @@
package com.raorao.interview.toutiao.t5;
import java.util.Scanner;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-25-11:30
*/
public class Main {
private static final String ERR = "cannot_answer";
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] line1 = scanner.nextLine().split(" ");
int n = Integer.parseInt(line1[0]);
int m = Integer.parseInt(line1[1]);
char[] y = new char[n];
int[] k = new int[n];
char[] x = new char[n];
char[][] q = new char[m][2];
for (int i = 0; i < n; i++) {
String line = scanner.nextLine();
String[] eq = line.split(" = ");
y[i] = eq[0].charAt(0);
String[] eq2 = eq[1].split(" - ");
k[i] = Integer.parseInt(eq2[0]);
x[i] = eq2[1].charAt(0);
}
for (int i = 0; i < m; i++) {
String line = scanner.nextLine();
String[] eq = line.split(" - ");
q[i][0] = eq[0].charAt(0);
q[i][1] = eq[1].charAt(0);
}
String[] ret = new String[2];
for (int i = 0; i < m; i++) {
ret[i] = process(y, k, x, q[i]);
}
for (String s : ret) {
System.out.println(s);
}
}
private static String process(char[] y, int[] k, char[] x, char[] q) {
int index1 = getIndex(y, q[0]);
int index2 = getIndex(x, q[1]);
if (index1 != -1 && index2 != -1 && index1 != index2) {
int res = k[index1] - k[index2];
return String.valueOf(res);
}
return ERR;
}
private static int getIndex(char[] chars, int q) {
for (int i = 0; i < chars.length; i++) {
if (q == chars[i]) {
return i;
}
}
return -1;
}
}

View File

@ -0,0 +1,45 @@
package com.raorao.java.socket;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-27-22:40
*/
public class TCPClient {
public static void main(String[] args) throws Exception {
//创建两个String类型的字符串用来发送和接受
String sentence;
String modifiedSentence;
//创建输入流,用来接受键盘输入
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
//创建一个Socket类型的 clientSocket 用来发起服务器和客户机之间的连接
Socket clientSocket = new Socket("127.0.0.1", 6789);
//创建向服务器发送信息的输出流
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
//创建输入流,用来接收来自服务器的字节流
BufferedReader inFormServer = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
//读流数据
sentence = inFromUser.readLine();
//向服务器发送sentence的字节数据
outToServer.writeBytes(sentence + '\n');
//获取字节流数据为String
modifiedSentence = inFormServer.readLine();
System.out.println("Form Server :" + modifiedSentence);
}
}

View File

@ -0,0 +1,46 @@
package com.raorao.java.socket;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.channels.Channel;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-27-22:39
*/
public class TCPServer {
public static void main(String[] args) throws Exception {
String clientSentence;
String capitalizedSentence;
//服务器Socket用来建立连接
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());
//读取字节成String字符串
clientSentence = inFromClient.readLine();
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}

View File

@ -0,0 +1,60 @@
package com.raorao.java.socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-27-22:29
*/
public class UDPClient {
public static void main(String[] args) throws Exception {
//读取键盘输入的字节流
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
//为客户机创建了一个传输信息的门但是并没与向TCP那样建立连接
DatagramSocket clientSocket = new DatagramSocket();
//这行代码调用了DNS查询查询主机名对应的IP地址后面要用这个地址来向服务器发送信息
InetAddress IPAddress = InetAddress.getByName("localhost");
//需要发送的字节数组
byte[] sendData;
//接受的字节数组
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
//将字符串转为字节放入sendData
sendData = sentence.getBytes();
//UDP数据报分组里面包含想要发送的内容以及目的地址等信息
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
//用这个‘门’来发送这个数据包
clientSocket.send(sendPacket);
//获取数据报分组
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
//用‘门’获取数据报
clientSocket.receive(receivePacket);
//将获取的数据报转为String类型数据
String modifiedSentence = new String(receivePacket.getData());
System.out.println("From Server:" + modifiedSentence);
//关闭这个门
clientSocket.close();
}
}

View File

@ -0,0 +1,46 @@
package com.raorao.java.socket;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-27-22:19
*/
public class UDPServer {
public static void main(String[] args) throws IOException {
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData;
while(true){
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalized = sentence.toUpperCase();
sendData = capitalized.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddress,port);
serverSocket.send(sendPacket);
System.out.println("Recived: " + sentence + "from " + IPAddress + ":" + port);
System.out.println("Send back:" + capitalized);
}
}
}

View File

@ -1,11 +0,0 @@
package com.raorao.java.test;
/**
* .
*
* @author Xiong Raorao
* @since 2018-08-10-23:27
*/
public class A {
}