`

socket理论

    博客分类:
  • java
阅读更多

1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
  重要的Socket API:java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3文档。
  Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。
  getInputStream方法获得网络连接输入,同时返回一个InputStream对象实例。
  getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。 注意:其中getInputStream和getOutputStream方法均可能会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。
  2.如何开发一个Server-Client模型的程序 开发原理:
  服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
  客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。
  Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。

分享到:
评论

相关推荐

    Socket理论知识.doc

    Socket 理论知识主要涉及计算机网络通信的基础概念和协议,包括OSI七层网络模型、TCP/IP四层模型、TCP与UDP的区别以及Socket开发的相关概念。以下是对这些知识点的详细解释: 1. **OSI七层网络模型**: - OSI模型...

    JAVA Socket 经典教程

    Java Socket是Java编程语言中实现网络通信的基础组件,它提供了应用程序与网络协议的接口,使得开发者可以构建基于TCP...实践是检验理论的最好方式,动手编写Socket程序,不断尝试和调试,将有助于深化理解和提升技能。

    Android socket通信聊天,客户端+服务端

    通过分析这些代码,你可以看到如何将上述理论知识应用到实际项目中。 总结来说,Android中的Socket通信涉及网络编程、多线程、数据处理等多个方面,需要综合运用Java和Android的相关知识。理解并熟练掌握Socket通信...

    C语言Socket简单编程指南

    Socket编程通常涉及到了解套接字(Socket)的基本概念、网络理论、各种网络编程函数以及如何处理IP地址等问题。以下是从提供的文件信息中提炼出的知识点: ### 什么是Socket Socket是应用程序进行网络通讯的一种...

    Socket网络编程进阶与实战系统掌握Socket核心技术

    Socket网络编程进阶与实战系统掌握Socket核心技术,本课程将理论结合实践,带你从零开始,系统学习Socket编程技术,让Socket的学习不再那么零散与难以掌握,同时会提炼出Socket网络传输的核心思想与构架,并带你踩坑...

    C# Socket入门学习! Socket入门学习! Socket入门学习!

    为了更好地理解和运用Socket编程,你可以尝试实现一个简单的聊天室或者文件传输应用,这将有助于巩固理论知识并提升实践能力。 通过以上讲解,你应该对C# Socket编程有了基本的认识。实际开发中,还需要结合具体的...

    src_socket编程_DEMO_

    总之,“src_socket编程_DEMO_”是一个很好的起点,它将理论知识与实际操作相结合,让初学者能快速上手Socket编程,进一步探索网络通信的奥秘。通过不断实践和学习,你将能熟练掌握这一关键技能,为在IT行业中的发展...

    C++ socket编程基础(理论篇)

    C++中的Socket编程是实现进程间通信的一种方法,特别是在分布式系统和网络应用中十分常见。Socket库提供了API函数,使得开发者能够构建客户端和服务器程序,进行数据交换。 首先,我们需要理解几个基本概念: 1. ...

    vc_socket_client

    本篇文章旨在基于Visual C++(VC)环境,详细介绍Socket编程的基础理论与实践操作,并提供一个实际的客户端示例。 #### Socket编程概述 Socket编程是基于TCP/IP协议栈的一种应用层接口,它为应用程序提供了访问...

    实战Linux Socket编程

    在IT领域,Linux Socket编程是网络通信的核心技术之一,它为开发者提供了在Linux操作系统上实现进程间通信(IPC)和...通过理论学习与实战练习,你将能够熟练地驾驭这一强大的工具,为你的软件开发事业奠定坚实的基础。

    c#编写基于socket通信的远程控制案例

    在IT行业中,网络通信是不可或缺的一部分,而Socket编程则是实现客户端和服务器间通信的基础。C#作为.NET框架下的主要...通过实际编写和运行远程控制案例,不仅可以加深理论知识的理解,还能提高解决实际问题的能力。

    socket详解

    本文从Socket的概念出发,详细介绍了Socket的两种主要类型——流式Socket和数据报Socket,并深入探讨了Socket的相关理论知识及常用API函数。最后,通过简单的服务器端和客户端示例代码,进一步巩固了Socket编程的...

    Socket网络编程1

    此外,文件“Socket网络编程.docx”可能包含更详细的理论知识、代码示例和实际应用案例,帮助读者深入理解Socket编程。通过学习和实践,开发者能够构建自己的网络应用程序,如聊天室、文件传输工具等。 总之,...

    WPF Socket 服务协议

    **WPF Socket 服务协议详解** Windows Presentation Foundation (WPF) 是Microsoft开发的一种用户界面框架,用于构建桌面应用程序。...记得理论与实践相结合,多动手实践,才能更好地理解和运用这些技术。

    java socket 经典教程

    Java Socket编程是网络编程的基础,它是Java平台中用于实现客户端-服务器通信的核心API。本教程将深入探讨Java Socket编程的...实践是检验理论的最好方式,因此在学习过程中,不断编写和调试Socket程序是至关重要的。

    C++编写的Socket通信程序源代码

    这部分内容可以帮助读者建立对Socket编程的理论基础。 "Socket通信"可能是包含实际示例代码的文件,可能涉及了服务器端和客户端的实现。通过阅读和分析这些源代码,你可以学习到如何在C++中实现Socket通信,如何...

    c#socket通信经典

    然而,所提供的部分内客却详细介绍了Socket编程的基础理论,包括TCP/IP模型、Socket接口的历史背景以及Socket编程的核心概念。下面,我们将深入探讨这些知识点。 ### TCP/IP模型概览 TCP/IP模型,即传输控制协议/...

    java socket通讯程序源码

    Java Socket通信程序源码是Java网络编程中一个重要的学习领域,它主要用于实现两台计算机之间的数据传输。...为了更深入学习,你可以下载提供的源文件1,分析和运行代码,结合理论知识,实践是检验理解的最佳方式。

    supersocket基本类库与测试

    标题中的“supersocket基本类库与测试”指的是SuperSocket,这是一个开源的.NET框架,用于简化TCP/IP协议的开发,使开发者能够快速构建基于...同时,它也提供了实际操作的机会,让理论知识与实践相结合,提升技能。

Global site tag (gtag.js) - Google Analytics