java——网络编程

来源:互联网 发布:李小璐的淘宝店铺 编辑:程序博客网 时间:2024/06/05 00:19
/** * @author  xiexialing  * @date    2017年4月25日 下午6:47:56  * @version 1.0 */package internet;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Internet {}//java 网络编程//网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络链接。//java.net包中j2se的API包含有类和接口,他们提供低层次的通信细节。你可以直接使用这些类和接口,来专注解决问题,而不是关注通信细节。//java.net 保重提供了两种常见的网络协议的支持://TCP:TCP是传输控制协议,他保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称为TCP/IP。//UDP:UDP是用户数据协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。//本教程主要讲解以下两个主题。//Socket编程:这事是用最广泛的网络概念,它已被解释得非常详细。//URL处理:...//Scoket编程//套接字使用TCP提供了两台电脑时间的通信机制。客户端程序创建一个套接字,并尝试连接服务器的套接字。//当建立连接是,服务器创建一个Socket对象。客户端额服务器现在可以通过对Socket对象的写如何读取来进行通信。//java.net.Socket类代表一个套接字,并且java.net.ServerSocket类为服务器提供了一种监听客户端,并与他们建立连接的机制。//以下步骤在两台计算机之间使用套接字建立TCP连接时会出现://服务器实例化一个ServerSocket类的accept()方法,该方法将一直等待,知道客户端连接到服务器上给定的端口。//服务器正在等待是,一个客户端实例化一个Socket对象,指定服务器名称和端口号来请求连接。//Socket类的构造函数试图将客户端连接到指定的服务器和端口。如果通信被建立,则客户端创建一个Socket对象能够与服务器进行通信。//在服务器端,accept()方法返回服务器上一个新的socket的引用,该socket链接到客户端的socket。//连接建立后,通过使用I/O流进行通信,每一个socket都有一个输入流和输出流,客户端的输出流连接到服务器的输入流。//TCP是一个双向的通信协议,因此数据可以通过两个数据流在同一时间发送。//ServerSocket类的方法//服务器应用层序通过使用java.net.ServerSocket类以获取一个端口,并且侦听客户端的请求。//ServerSocket 类有四个构造方法://序号方法描述//1public ServerSocket(int port) throws IOException//创建绑定到特定端口的服务器套接字。//2public ServerSocket(int port, int backlog) throws IOException//利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。//3public ServerSocket(int port, int backlog, InetAddress address) throws IOException//使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。//4public ServerSocket() throws IOException//创建非绑定服务器套接字。//创建非绑定服务器套接字。 如果 ServerSocket 构造方法没有抛出异常,就意味着你的应用程序已经成功绑定到指定的端口,并且侦听客户端请求。//这里有一些 ServerSocket 类的常用方法://序号方法描述//1public int getLocalPort()//  返回此套接字在其上侦听的端口。//2public Socket accept() throws IOException//侦听并接受到此套接字的连接。//3public void setSoTimeout(int timeout)// 通过指定超时值启用/禁用 SO_TIMEOUT,以毫秒为单位。//4public void bind(SocketAddress host, int backlog)//将 ServerSocket 绑定到特定地址(IP 地址和端口号)。//Socket类的方法//java.net.Sockete类代表客户端和服务器都用来互相沟通的套接字。客户端要获取一个Socket对象通过实例化,而服务器的一个Socket对象则通过accpet()的返回值。//Socket 类有五个构造方法.//序号方法描述//1public Socket(String host, int port) throws UnknownHostException, IOException.//创建一个流套接字并将其连接到指定主机上的指定端口号。//2public Socket(InetAddress host, int port) throws IOException//创建一个流套接字并将其连接到指定 IP 地址的指定端口号。//3public Socket(String host, int port, InetAddress localAddress, int localPort) throws IOException.//创建一个套接字并将其连接到指定远程主机上的指定远程端口。//4public Socket(InetAddress host, int port, InetAddress localAddress, int localPort) throws IOException.//创建一个套接字并将其连接到指定远程地址上的指定远程端口。//5public Socket()//通过系统默认类型的 SocketImpl 创建未连接套接字//当 Socket 构造方法返回,并没有简单的实例化了一个 Socket 对象,它实际上会尝试连接到指定的服务器和端口。//下面列出了一些感兴趣的方法,注意客户端和服务器端都有一个 Socket 对象,所以无论客户端还是服务端都能够调用这些方法。//序号方法描述//1public void connect(SocketAddress host, int timeout) throws IOException//将此套接字连接到服务器,并指定一个超时值。//2public InetAddress getInetAddress()// 返回套接字连接的地址。//3public int getPort()//返回此套接字连接到的远程端口。//4public int getLocalPort()//返回此套接字绑定到的本地端口。//5public SocketAddress getRemoteSocketAddress()//返回此套接字连接的端点的地址,如果未连接则返回 null。//6public InputStream getInputStream() throws IOException//返回此套接字的输入流。//7public OutputStream getOutputStream() throws IOException//返回此套接字的输出流。//8public void close() throws IOException//关闭此套接字。//InetAddress 类的方法//这个类表示互联网协议(IP)地址。下面列出了 Socket 编程时比较有用的方法://序号方法描述//1static InetAddress getByAddress(byte[] addr)//在给定原始 IP 地址的情况下,返回 InetAddress 对象。//2static InetAddress getByAddress(String host, byte[] addr)//根据提供的主机名和 IP 地址创建 InetAddress。//3static InetAddress getByName(String host)//在给定主机名的情况下确定主机的 IP 地址。//4String getHostAddress() //返回 IP 地址字符串(以文本表现形式)。//5String getHostName() // 获取此 IP 地址的主机名。//6static InetAddress getLocalHost()//返回本地主机。//7String toString()//将此 IP 地址转换为 String。//Socket 客户端实例class GreetingClient{public void go(){try {Socket client = new Socket("192.168.2.109", 5000);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("Server says" + in.readUTF());client.close();} catch (IOException e) {e.printStackTrace();}}}//Socket服务器实例class GreetingServer extends Thread{private ServerSocket serverSocket;public GreetingServer( int port){try {serverSocket = new ServerSocket(5000);serverSocket.setSoTimeout(10000);} catch (IOException e) {e.printStackTrace();}}public void run(){while(true){try {Socket sock = serverSocket.accept();DataInputStream in = new DataInputStream(sock.getInputStream());System.out.println(in.readUTF());DataOutputStream out = new DataOutputStream(sock.getOutputStream());out.writeUTF("thank you for connection to");sock.close();} catch (IOException e) {e.printStackTrace();}}}}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 上眼皮干燥起皮怎么办 怀孕下面湿又痒怎么办 内裤穿久了有异味怎么办 刨腹产私处捂烂了怎么办 猫咬手指出血了怎么办 老有白带涌出来怎么办 耳朵里塞了珠子怎么办 树脂发光字烧了怎么办 马蹄莲长得太高怎么办 百合球的芽断了怎么办 种的百合开败怎么办 盆栽百合花开完之后怎么办 土养百合花谢了怎么办 多肉叶子不饱满怎么办 冬天富贵竹叶子发黄怎么办水养 富贵竹叶子发黄怎么办水养 水养富贵竹有虫怎么办 水养的富贵竹叶子发黄怎么办 百合花水里的盐放多了怎么办 芦荟叶子发黄干瘪了怎么办 水插百合不开花怎么办 干百合冷水泡了怎么办 牡丹籽油过期了怎么办 ps画布建小了怎么办 腰突然疼的受不了了怎么办 微信里面打不开表格怎么办? 浏览器未正常加载相关控件怎么办 猫的眼睛发炎了怎么办 橡胶手机壳松了怎么办 橡胶手机壳小了怎么办 苹果手机下载不了软件了怎么办 苹果手机浏览器下载不了软件怎么办 小狗吃了硬的棉花怎么办 小狗吃了隔尿垫里的棉花怎么办 眼睫毛掉进眼睛里怎么办 爱掉头发怎么办吃什么 头皮屑多头发干燥脱发怎么办 剪了头发后悔了怎么办 2岁宝宝发际线高怎么办 脱发怎么办吃什么能长发 后面头发睡平了怎么办