网络
客户端要解决的三个问题
- 建立客户端与服务器之间的初始连接:用户通过socket连接来连接服务器。
- 用户送出信息给服务器。
- 用户从服务器接受信息。
建立Socket连接
Socket是个代表两台机器之间网络连接的对象(java.net.Socket)。要创建Socket连接要知道两项关于服务器的信息:IP地址和端口号。
Socket连接的建立代表两台机器之间存有对方的信息,包括网络地址和TCP的端口号。
使用BufferedReader从Socket上读取数据
用串流来通过Socket连接来沟通。
建立对服务器的Socket连接
Socket chatSocket = new Socket("127.0.0.1", 5000);
建立连接到Socket上底层输入串流的InputStreamReader
InputStreamReader stream = new InputStreamReader(chatSocket.getInputStream());
建立BufferedReader来读取
BufferedReader reader = new BufferedReader(stream); String message = read.readline();
用PrintWriter写数据到Socket上
对服务器建立Socket连接
Socket chatSocket = new Socket("127.0.0.1", 5000);
建立链接到Socket的PrintWriter
PrintWriter writer = new PrintWriter(chatSocket.getInputStream());
写入数据
writer.println("message to send"); writer.print("anther message");
简单的客户端程序
import java.io.*;
import java.net.*;
public class DailyAdviceClient {
public void go() {
try {
Socket s = new Socket("127.0.0.1", 4242);
InputStreamReader streamReader = new InputStreamReader(s.getInputStream());
BufferedReader reader = new BufferedReader(streamReader);
String advice = reader.readLine();
System.out.println("Today you should:" + advice);
reader.close();
} catch (IOException ex) {
ex.getStackTrace();
}
}
public static void main(String[] args) {
DailyAdviceClient client = new DailyAdviceClient();
client.go();
}
}