-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServer
More file actions
144 lines (120 loc) · 4.78 KB
/
Server
File metadata and controls
144 lines (120 loc) · 4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package httpServer;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.HttpURLConnection;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.URL;
import java.io.File;
public class Server {
public static void main(String[] args) throws IOException
{
// server is listening on port
ServerSocket ss = new ServerSocket(55067);
Socket socket = null;
try
{
// socket object to receive incoming client requests
socket = ss.accept();
System.out.println("A new client is connected : " + socket);
System.out.println("Assigning new thread for this client");
// create a new thread object
Thread t = new ClientHandler(socket);
// Invoking the start() method
t.start();
}
catch (Exception e){
socket.close();
e.printStackTrace();
}
}
}
// ClientHandler class
class ClientHandler extends Thread
{
final Socket s;
private BufferedReader input;
private DataInputStream in;
// Constructor
public ClientHandler(Socket s)
{
this.s = s;
}
public void run()
{
String massege;
StringBuilder stringbuilder = new StringBuilder();
//StringBuffer Response = new StringBuffer();
try{
in = new DataInputStream(s.getInputStream());
if ((massege = in.readUTF()) != null )
{
stringbuilder.append(massege);
}
String mass = stringbuilder.toString();
System.out.println("Message Received: " + mass);
//--------------------
URL urlForGetRequest = new URL(mass);
//String readUTF = null;
String readLine = null;
HttpURLConnection conection = (HttpURLConnection) urlForGetRequest.openConnection();
conection.setRequestMethod("GET");
int responseCode = conection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(
new InputStreamReader(conection.getInputStream()));
StringBuffer response = new StringBuffer();
while ((readLine = in.readLine()) != null) {
response.append(readLine);
} in.close();
String k = response.toString();
System.out.println(k);
String fileName = "index.txt";
try {
// Assume default encoding.
File file = new File(fileName);
file.createNewFile();
FileWriter fileWriter = new FileWriter(file);
String FilePath= file.getAbsolutePath();
// Always wrap FileWriter in BufferedWriter.
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// Note that write() does not automatically
// append a newline character.
bufferedWriter.write(response.toString());
bufferedWriter.close();
//ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
//write object to Socket
DataOutputStream DataOut = new DataOutputStream(s.getOutputStream());
//oos.writeChars(FilePath);
DataOut.writeUTF(FilePath);
//oos.close();
DataOut.close();
s.close();
}
catch(IOException ex) {
System.out.println("Error writing to file " + fileName + "'");
// Or we could just do this:
// ex.printStackTrace();
}
} else {
System.out.println("GET NOT WORKED");
}
}catch (Exception e){
try {
s.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
}
//}
}