用Java实现基于Socket的网络编程

本文介绍了如何使用Java实现基于TCP的Socket网络编程,包括Socket的概念、为什么使用Socket、Socket的系统调用(C/S模式)以及Java中的Socket使用。通过示例展示了在Java中创建服务器端和客户端的基本步骤,探讨了程序实现思路,特别是如何处理一对一、一对多的聊天模式,并提供了程序源代码链接。
摘要由CSDN通过智能技术生成

前言

这几天做计算机网络和数据库的课设,有一段时间没写博客了。今天写一篇用Java实现的聊天室,是之前做的计算机网络的作业,使用TCP协议,可以进行一对一、一对多的聊天,不过比较简陋,没有用户界面,输入输出都是在控制台。

什么是Socket

既然需要使用到Socket,那么首先得明白Socket是个什么东西。我们先扯远一点说,从计算机网络体系结构开始。
计算机网络体系结构
我们都知道大名鼎鼎的OSI七层协议体系并不实用,真正被广泛使用的是TCP/IP的四层协议,而五层协议是OSI和TCP/IP的综合体,只是为方便介绍计算机网络的原理才使用的。不管是几层的协议,在经过一通操作到达运输层时,数据已经可以从源主机传到目的主机了。

但是实际上,真正需要进行通信的是两台主机中的某两个进程。现在虽然已经将数据送到了目标主机,却无法确定需要交付给主机内的哪个进程。就像是信已经寄到小区了,却不知道送到哪一家。这也就是运输层协议要搞定的问题——怎样确定是哪个进程、以怎样的方式来传输(TCP/UDP)。

为了解决第一个问题,在运输层中使用协议端口号来标志本计算机中各个进程同运输层交互时的接口。通俗地说,就是给每个家(进程)分配一个门牌号(端口号)。现在通过端口号就可以找到对应进程了。这说明,当我们需要给某台计算机中的某个进程发送数据时,除了要知道对方的IP地址,还需要知道对方的端口号。
运输层的功能

现在再问:什么是Socket?在课本的定义中是:端口号拼接到IP地址即构成了套接字(Socket)。Socket的表示方法就是,在点分十进制的IP地址后面写上端口号,例如(127.0.0.1:8888)。

当然,Socket并不是只有这一个意思。现在我们说“利用Socket实现网络编程”,不是说用(127.0.0.1:8888)这么一串数字就可以了,而是在说使用系统提供的 socket API来进行网络编程。这个socket API是应用层与TCP/IP协议族通信时的中间软件抽象层。它是一组接口,把TCP/T

  • 17
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值