Java基础 — Socket
具体API翻文档。直接上例子。
连接到某个服务器:
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 8080)) {
OutputStream out = socket.getOutputStream();
out.write("good night".getBytes());
InputStream in = socket.getInputStream();
byte[] bytes = new byte[1024];
int cnt = in.read(bytes);
System.out.println(new String(bytes, 0, cnt));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器响应连接:
public class Server {
public static void main(String[] args) {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8080);
Socket socket = serverSocket.accept(); // 当然这里一般是开启一个线程来处理连接
InputStream in = socket.getInputStream();
byte[] bytes = new byte[1024];
int cnt = in.read(bytes);
System.out.println("received: " + new String(bytes, 0, cnt));
OutputStream out = socket.getOutputStream();
out.write("hello: ".getBytes());
out.write(bytes, 0, cnt);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (serverSocket != null) {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}