使用Java函数库实现网络编程:常用函数和示例代码
发布时间:2023-08-02 03:39:44
Java提供了丰富的函数库来实现网络编程,包括底层的Socket编程、高层的HTTP编程等。下面是一些常用的函数和示例代码。
1. 建立Socket连接:
import java.net.Socket;
import java.io.IOException;
public class SocketExample {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8080);
// 使用socket进行通信操作
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代码使用Socket类来建立与指定主机和端口的连接,然后可以通过socket进行读写操作。需要注意的是,在通信结束后应该调用socket.close()来关闭连接。
2. 发送HTTP请求:
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class HttpExample {
public static void main(String[] args) {
try {
URL url = new URL("http://www.example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代码使用HttpURLConnection类发送HTTP GET请求,并打印响应结果。
3. 建立HTTP服务器:
import com.sun.net.httpserver.HttpServer;
import java.net.InetSocketAddress;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;
public class HttpServerExample {
public static void main(String[] args) {
try {
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/", new MyHandler());
server.setExecutor(null);
server.start();
} catch (IOException e) {
e.printStackTrace();
}
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
String response = "Hello, World!";
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
}
以上代码使用HttpServer类创建一个简单的HTTP服务器,监听8080端口,并在根路径返回"Hello, World!"。
以上代码只是网络编程中的一小部分示例,Java提供了更多丰富的函数和类来支持各种网络操作,比如实现FTP客户端、SMTP客户端等。通过使用Java的网络函数库,开发者可以方便地完成各种网络编程任务。
