随着互联网的快速发展,网络编程变得越来越重要,java作为一门流行的编程语言,自然也有着强大的网络编程能力。本文将简要介绍java中的网络编程。
基础在java中,网络编程需要使用到两个重要的类:socket和serversocket。 socket类被用于建立客户端的连接,而serversocket则被用于创建服务器端的连接。 socket对象通过指定ip地址和端口号进行创建,而serversocket则指定本地端口号进行创建。
网络传输协议在进行网络编程时,需要了解一些基本的网络传输协议,例如tcp/ip、udp和http等。 tcp/ip和udp是最常用的两种协议。tcp/ip是面向连接的协议,它提供可靠的数据传输,而udp则是无连接的协议,它提供了更快的数据传输。 http协议则是离线请求和应答协议,它被广泛应用于web服务器和浏览器之间的通信。
编写基于tcp/ip协议的网络程序下面是一个简单的客户端/服务器程序的例子:
客户端:
import java.net.*;import java.io.*;public class client { public static void main(string [] args) { string servername = args[0]; int port = integer.parseint(args[1]); try { system.out.println("连接到主机:" + servername + " ,端口号:" + port); socket client = new socket(servername, port); system.out.println("远程主机地址:" + client.getremotesocketaddress()); outputstream outtoserver = client.getoutputstream(); dataoutputstream out = new dataoutputstream(outtoserver); out.writeutf("hello from " + client.getlocalsocketaddress()); inputstream infromserver = client.getinputstream(); datainputstream in = new datainputstream(infromserver); system.out.println("服务器响应: " + in.readutf()); client.close(); } catch (ioexception e) { e.printstacktrace(); } }}
服务器端:
import java.net.*;import java.io.*;public class server extends thread { private serversocket serversocket; public server(int port) throws ioexception { serversocket = new serversocket(port); serversocket.setsotimeout(10000); } public void run() { while(true) { try { system.out.println("等待客户端连接,端口号为:" + serversocket.getlocalport() + "..."); socket server = serversocket.accept(); system.out.println("远程主机地址:" + server.getremotesocketaddress()); datainputstream in = new datainputstream(server.getinputstream()); system.out.println(in.readutf()); dataoutputstream out = new dataoutputstream(server.getoutputstream()); out.writeutf("感谢连接我:" + server.getlocalsocketaddress() + "goodbye!"); server.close(); } catch (sockettimeoutexception s) { system.out.println("socket timed out!"); break; } catch (ioexception e) { e.printstacktrace(); break; } } } public static void main(string [] args) { int port = integer.parseint(args[0]); try { thread t = new server(port); t.start(); } catch (ioexception e) { e.printstacktrace(); } }}
这个程序演示了客户端和服务器之间的简单通信。当客户端运行时,它发送一个字符串给服务器,服务器响应该字符串。
总结java中的网络编程可以使用tcp/ip和udp等协议进行。 在编写网络程序时,需要使用socket类和serversocket类。
以上仅是java中网络编程的入门部分,关于网络编程还有许多需要深入了解的内容,例如数据包的发送和接收,多线程网络编程,以及通过http访问web服务器等。
以上就是java 中的网络编程的详细内容。
