首页 > 代码库 > 自己动手写简单的web应用服务器(1)—tcp通信
自己动手写简单的web应用服务器(1)—tcp通信
1.socket简介:
socket通常称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个socket,并绑定在一个端口上,不同的端口对应不同的服务。
应用程序通常通过"套接字",向网络发出请求或者应答网络请求。socket和serverSocket类位于java.net包中。serverScoket用于服务端,socket是建立网络连接时使用的。连接成功时,应用程序两端都会产生一个socket实例,操作这个实例,完成所需的会话。
2.获取地址和端口号:
通过socket可以获取获取本地地址和端口号,以及远程地址和端口号。
服务器端源码:
1 package socket; 2 3 import java.net.InetAddress; 4 import java.net.ServerSocket; 5 import java.net.Socket; 6 7 public class Server { 8 public static void main(String[] args) throws Exception { 9 //创建serverSocket,并申请8080端口10 ServerSocket ss = new ServerSocket(8080);11 //阻塞方法,直到某个Socket连接。连接成功,产生Socket实例。12 Socket s = ss.accept();13 int localPort = s.getLocalPort();//获取本地端口14 InetAddress localAdd = s.getLocalAddress();//获取套接字绑定的本地地址IP15 String hostName = localAdd.getCanonicalHostName();//获取此 IP 地址的完全限定域名16 String hostAddress = localAdd.getHostAddress();//返回 IP 地址字符串(以文本表现形式)。17 System.out.println("本地端口为:"+localPort);18 System.out.println("本地IP地址的完全限定域名:"+hostName);19 System.out.println("本地IP的字符串为:"+hostAddress);20 System.out.println("*************分割符*****************");21 int port = s.getPort();//获取远程端使用的端口22 InetAddress inetAdd = s.getInetAddress();//获取套接字绑定的远程的IP23 String inetName = inetAdd.getCanonicalHostName();//获取此 IP 地址的完全限定域名24 String inetAddress = inetAdd.getHostAddress();//返回 IP 地址字符串(以文本表现形式)。25 System.out.println("远程端口为:"+port);26 System.out.println("远程IP地址的完全限定域名"+inetName);27 System.out.println("远程IP的字符串为"+inetAddress);28 }29 }
客服端代码:
1 package socket; 2 3 import java.net.InetAddress; 4 import java.net.Socket; 5 6 public class Client { 7 public static void main(String[] args) throws Exception { 8 //连接的主机名为"localhost",连接到的主机8080端口。 9 Socket s = new Socket("192.168.1.103",8080);10 int localPort = s.getLocalPort();//获取本地端口11 InetAddress localAdd = s.getLocalAddress();//获取套接字绑定的本地地址IP12 String hostName = localAdd.getCanonicalHostName();//获取此 IP 地址的完全限定域名13 String hostAddress = localAdd.getHostAddress();//返回 IP 地址字符串(以文本表现形式)。14 System.out.println("本地端口为:"+localPort);15 System.out.println("本地IP地址的完全限定域名:"+hostName);16 System.out.println("本地IP的字符串为:"+hostAddress);17 System.out.println("*************分割符*****************");18 int port = s.getPort();//获取远程端使用的端口19 InetAddress inetAdd = s.getInetAddress();//获取套接字绑定的远程的IP20 String inetName = inetAdd.getCanonicalHostName();//获取此 IP 地址的完全限定域名21 String inetAddress = inetAdd.getHostAddress();//返回 IP 地址字符串(以文本表现形式)。22 System.out.println("远程端口为:"+port);23 System.out.println("远程IP地址的完全限定域名"+inetName);24 System.out.println("远程IP的字符串为"+inetAddress);25 }26 }
注意:要先开服务器,再开客户端。可以用浏览器代替客户端,因为http协议是基于tcp/ip协议的。
自己动手写简单的web应用服务器(1)—tcp通信
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。