- 使用BufferReader从Socke上读取数据
步骤:
①建立对服务器的Socket的连接,注意这里的127.0.0.1指的是本机,4242是指端口
Socket s = new Socket("127.0.0.1", 4242);
②建立连接到Socket的低层输入串流的InputStreamReader
InputStreamReader streamread = new InputStreamReader(s.getInputStream());
③建立BufferedReader来读取
BufferedReader read = new BufferedReader(streamread);
String advice = read.readLine();
查看代码:
void go() {
try {
Socket s = new Socket("127.0.0.1", 4242);
InputStreamReader streamread = new InputStreamReader(s.getInputStream());
BufferedReader read = new BufferedReader(streamread);
String advice = read.readLine();
System.out.println(advice);
read.close();
}catch(Exception ex) {
ex.printStackTrace();
}
}
-
编写简单的服务器程序
①服务器应用程序对特定的端口创建ServerSocket
②服务器创建出与客户端连接的新版本的Socket -
简单的客户端程序:
package Java;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
public class DailyAdviceClient {
void go() {
try {
Socket s = new Socket("127.0.0.1", 4242);
InputStreamReader streamread = new InputStreamReader(s.getInputStream());
BufferedReader read = new BufferedReader(streamread);
String advice = read.readLine();
System.out.println(advice);
read.close();
}catch(Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] agrs) {
DailyAdviceClient dailyadviceclient = new DailyAdviceClient();
dailyadviceclient.go();
}
}
- 简单的服务器端程序:
package Java;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class DailyAdviceServer {
String[] adviceList = {"a","b","c","d"};
void go() {
try {
ServerSocket serversocket = new ServerSocket(4242);
while(true) {
//Socket socket = new Socket("127.0.0.1",4242);
Socket socket = serversocket.accept();
PrintWriter printwriter = new PrintWriter(socket.getOutputStream());
String advice = getAdvice();
printwriter.print(advice);
printwriter.close();
System.out.println(advice);
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
String getAdvice() {
int random = (int)(Math.random()*5);
return adviceList[random];
}
public static void main(String[] agrs) {
DailyAdviceServer server = new DailyAdviceServer();
server.go();
}
}