0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详谈TCP网络编程的套接字和端口

如意 来源:百家号 作者:米粒教育 2020-07-01 10:09 次阅读

网络中的两台计算机进行通信时,除了确定计算机在网络中的IP地址外,还需要确定计算机中的一个端口,端口并不是实际的物理设备,它是一个应用程序,这个应用程序来负责两台计算机的通信。

一个IP地址标识了一台主机(服务器),主机可以提供多种服务,如web服务、ftp服务、远程桌面等。主机的每个服务都会等待客户端的连接,客户端如何区别这些服务呢?这就需要端口来区分了。

端口被规定为一个在0~65535之间的整数,这个整数和提供服务的应用程序关联。如web服务一般是80端口,ftp服务一般是21端口、远程桌面一般是3389端口。

当我们通过客户端浏览器访问一个网站时,在浏览器地址栏中输入该网站的网址,并不需要输入80端口号。这是因为web服务默认就是80端口号,当客户端以http协议访问主机时,主机会默认这是访问web服务。

在同一台计算机上端口号不能重复,否则,就会产生端口号冲突。程序员或计算机管理员在分配端口号时,需要遵循下面的规则:

(1)1~1023之间的端口号,是由ICANN来管理的,不能分配给用户自己的应用程序;

(3)1024~5000一般被TCP/IP程序作为临时端口号使用;

(4)分配的端口号不能发生冲突;

(4)应分配数值大于5000的端口号给用户开发的应用程序。

TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口。套接字用(IP地址:端口号)表示,区分不同应用程序进程间的网络通信和连接,套接字主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。

详谈TCP网络编程的套接字和端口

TCP使用套接字传输数据

Java语言中,使用Socket类来创建套接字,使用Socket类在两台计算机之间进行通信时,是有主次之分的,一个称为服务器程序,一个称为客户端程序。在服务器端使用ServerSocket类创建套接字,主要是监听指定的端口,等待客户端的连接;在客户端使用Socket类创建套接字,用于连接服务器端的套接字。服务器端和客户端的套接字的IP地址和端口号要一致。

详谈TCP网络编程的套接字和端口

客户端和服务端通信过程

在服务器端创建ServerSocket对象,并绑定监听端口。调用ServerSocket对象的accept()方法监听客户端的请求。与客户端建立连接后,它会返回一个已连接的Socket对象,并通过输入流读取客户端发送的请求信息,然后通过输出流向客户端发送响应信息,最后关闭socket及相关资源。

在客户端创建Socket对象,需要指定连接服务器的地址和端口号,和服务器建立连接后,通过输出流向服务端发送请求信息,然后通过输入流获取服务器的响应信息,最后关闭socket及相关资源。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1348

    浏览量

    78982
  • 端口
    +关注

    关注

    4

    文章

    954

    浏览量

    32008
  • 套接字
    +关注

    关注

    0

    文章

    5

    浏览量

    1860
收藏 人收藏

    评论

    相关推荐

    【MiCOKit试用体验】庆科MiCO系统篇(5)MiCO 套接

    示例示例效果一、网络套接Socket 套接,是源IP地址和目的IP地址以及源端口号和目的
    发表于 10-24 17:05

    UNIX域套接

    UNIX域套接用于在同一台计算机上运行的进程之间的通信。虽然因特网域套接可用于同一目的,但UNIX域套接
    发表于 09-02 11:59

    端点和套接怎么配置

    我有3个端点2个散列端点和1个端点。我想实现一个SLaveFIFO接口。是否有一个消费者的P-端口套接足以将数据从2个输出端点传输出去,我是否应该创建另一个消费者P-端口
    发表于 02-12 14:00

    交换机网络从Soft_AP到Infrastructure后,套接始终返回无效

    与以下代码的客户端连接通过这个实现,TCPPOEN函数返回一个有效的套接,但是在进入无限循环之后,我们通过在网页中配置网络来配置网络处于基础结构模式。当
    发表于 04-24 09:57

    如何通过socket系统调用创建一个套接

    面试被问到TCP/UDP的bind函数设计,所以前来补一下套接部分的内容套接:进程间通信的方法:可以在同一台机器或者
    发表于 12-24 06:38

    如何将ESP8266与Windows计算机上运行的tcp套接服务器程序连接?

    我正在尝试将 ESP8266 与在我的 Windows 计算机上运行的 tcp 套接服务器程序连接,我开发了一个 C# 应用程序运行并列出到 IP 172.16.1.85 端口 65
    发表于 02-23 07:09

    如何在iMXRT1176上的LwIP中使用TCP套接

    作为套接类型,使用 ICMP 作为套接协议。 lwip_socket(AF_INET, SOCK_RAW, IP_PROTO_ICMP); 我想将 SOCK_STREAM 创建
    发表于 06-02 10:10

    TCP_IP网络编程技术基础.王雷_部分2

    教材相比,本书主要的特点为:在注重阐述tcp/ip网络通信原理与套接api编程原理的基础上,通过对例程的深人剖析,深入浅出地介绍服务器与客
    发表于 04-19 09:54 2次下载

    TCP_IP网络编程技术基础.王雷_部分1

    教材相比,本书主要的特点为:在注重阐述tcp/ip网络通信原理与套接api编程原理的基础上,通过对例程的深人剖析,深入浅出地介绍服务器与客
    发表于 04-19 09:54 4次下载

    Windows网络编程的原始套接详细说明

    利用“原始套接”(Raw Socket),我们可访问位于基层的传输协议。本章专门讲解如何运用这种原始套接,来模拟 IP的一些实用工具,比如 Tr a c e r o u t e和P
    发表于 03-21 08:00 1次下载
    Windows<b class='flag-5'>网络</b><b class='flag-5'>编程</b>的原始<b class='flag-5'>套接</b><b class='flag-5'>字</b>详细说明

    DN93-PCMCIA套接交换

    DN93-PCMCIA套接交换
    发表于 04-19 18:20 14次下载
    DN93-PCMCIA<b class='flag-5'>套接</b><b class='flag-5'>字</b>交换

    基于AT89C52单片机和LT8030实现套接规范的计算机通信设计

    网络设置中有HTTP、SOCKET等类型。SOCKET是建立在传输层协议(主要是TCP和UDP)上的一种套接规范,它定义两台计算机间进行通信的规范(也是一种
    的头像 发表于 06-24 16:56 2299次阅读
    基于AT89C52单片机和LT8030实现<b class='flag-5'>套接</b><b class='flag-5'>字</b>规范的计算机通信设计

    Socket套接的原理说明

    和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接 (Socket)的接口,区分不同应用程序进程间的网络通信和连接。 生成
    的头像 发表于 06-18 19:16 1796次阅读
    Socket<b class='flag-5'>套接</b><b class='flag-5'>字</b>的原理说明

    网络系统调用网络套接入口函数

    网络套接入口函数 //所有的网络套接系统调用函数(socket bind listen co
    的头像 发表于 07-24 11:02 449次阅读

    套接socket包含哪些参数

    套接(Socket)是计算机网络中最基本的通信抽象,它定义了两个进程间通信的端点。在TCP/IP协议栈中,套接
    的头像 发表于 08-16 11:02 340次阅读