三九宝宝网宝宝百科宝宝知识

java中的socket编程是作什么的

03月28日 编辑 39baobao.com

[计算机二级C++基础:新手Socket编程总结]初学Socket以下是关于Socket编程知识的点滴 先看一段代码: 一般网络编程开头都会有的 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1...+阅读

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会说明一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。

方法/步骤

Java中的socket编程 下面的部分将通过一些示例讲解一下如何使用socket编写客户端和服务器端的程序。 注意:在接下来的示例中,我将使用基于TCP/IP协议的socket编程,因为这个协议远远比UDP/IP使用的要广泛。并且所有的socket相关的类都位于java.net包下,所以在我们进行socket编程时需要引入这个包。

写入数据 接下来就是写入请求数据,我们从客户端的socket对象中得到OutputStream对象,然后写入数据后。很类似文件IO的处理代码。

打开服务器端的socket

读取数据 通过上面得到的socket对象获取InputStream对象,然后安装文件IO一样读取数据即可。这里我们将内容打印出来。

使用socket实现一个回声服务器,就是服务器会将客户端发送过来的数据传回给客户端。

什么是Socket?

Socket接口是TCP/IP网络的API(Application Programming Interface,应用程序编程接口),Socket接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP网络上的应用程序。

请参阅以下资料:

socket非常类似于电话插座。以一个国家级电话网为例。电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于socket号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求(假如对方不在同一区内,还要拨对方区号,相当于给出网络地址)。对方假如在场并空闲(相当于通信的另一主机开机且可以接受连接请求),拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤消连接。

在电话系统中,一般用户只能感受到本地电话机和对方电话号码的存在,建立通话的过程,话音传输的过程以及整个电话系统的技术细节对他都是透明的,这也与socket机制非常相似。socket利用网间网通信设施实现进程通信,但它对通信设施的细节毫不关心,只要通信设施能提供足够的通信能力,它就满足了。

至此,我们对socket进行了直观的描述。抽象出来,socket实质上提供了进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。正如打电话之前,双方必须各自拥有一台电话机一样。在网间网内部,每一个socket用一个半相关描述:

(协议,本地地址,本地端口)

一个完整的socket有一个本地唯一的socket号,由操作系统分配。

最重要的是,socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket 系统调用。客户随机申请一个socket (相当于一个想打电话的人可以在任何一台入网电话上拨号呼叫),系统为之分配一个socket号;服务器拥有全局公认的 socket ,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。

socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器socket 半相关为全局所公认非常重要。读者不妨考虑一下,两个完全随机的用户进程之间如何建立通信?假如通信双方没有任何一方的socket 固定,就好比打电话的双方彼此不知道对方的电话号码,要通话是不可能的。

以下为关联文档:

从Java看多核并发编程的22.0时代的软件空前地活跃在人类生活的方方面面,从而带来了更多的计算量。因此2.0不可避免地对计算提出了新的需求、引发了新的思考,在这其中,多核带来的并行计算和并发编程无疑...

java中的多态到底什么意思多态又叫动态绑定是指“在运行期间”(而非编译期间)来判断所引用的对象的实际类型,根据其实际类型调用其相应的方法。就是new出来什么对象就调用那个对象的方法 -------- 多态...

java中socket什么意思所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库...

java编程myeclipse中的各种快捷键请告诉我几个好吗Eclipse 常用快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 1. 【ALT+/】 此快捷键为用户编辑...

常用Java编程软件有哪些常用的倒是有很多,比如:JDK,NetBases,JBuilder,Eclipse,Eclipse,MyEclipse JDK是java初学时用的,很麻烦的,其实编程工具里面应该不包括它,它只是支持java的底层工具。 NetBases是...

java编程需要的软件是什么学习java编程你必须下载一个jdk,这个是开发java语言的sun公司提供的java编程环境,没有这个环境你无法编写和运行java程序,当然也就无法学习了。(这个你应该已经知道了吧) 其它的,...

java面向对象编程封装是指隐藏对象的属性和实现细节,仅对外提供接口; 所谓继承就是代码重用; 而多态就是把做什么和怎么做分离开来; 抽象就是从特定角度出发,从事物中抽取出我们所关注的特性; this...

怎样快速入门java编程先去了解C语言,然后去熟练掌握java的编程规范,变量定义,可以自己先尝试些个HELLO WORLD!然后在深入的了解,大致的学习过程是: 1.实现HELLO WORLD 2.了解java是怎么定义变量,调用变...

java中的webservice是什么java中的webservice是什么,如何使用java做webservice:WebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范, 这些规范使得WebService能与其他兼容...

推荐阅读
图文推荐