欢迎来到天天文库
浏览记录
ID:46961270
大小:29.00 KB
页数:5页
时间:2019-12-01
《基于Socket的网络编程技术和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.....基于Socket的网络编程技术及其实现 摘要:科学技术的不断发展推动了网络信息化时代的发展,随着计算机技术不断的发展,各种网络编程技术日新月异。本文介绍了Socket网络编程的基本概念,以及实现Socket编程的基本原理,通给出一个基于TCP协议实例,来说明实现网络编程。 关键词:Socket;网络编程技术;通信 随着科学技术的发展,计算机网络编程技术在人们的日常生活中的应用也越来越普遍了通过网络使用通信协议实现进程间的通信,TCP/IP就是网络上常用的协议之一,在进行网络编程程序设计时,TCP/IP协议的核心内容受到操作系统的控制。网络编程程序必须通过协
2、议来实现自己的功能,靠系统提供的TCP/IP协议来完成编程程序。 1Socket网络编程的基本概念 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket[1]接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。Socket可以看成在两个程序进行通讯连接中的一个端点学习参考.....,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系。此后,应用程序送给Socket的数据,由
3、Socket交网络驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到得数据,网络应用程序就是这样通过Socket进行数据的发送与接收的。 1.1关于地址 一个程序要想与另一个程序通信,就要给计算机提供足够的信息,使其能找到另一个程序。在TCP/IP协议中,有两部分信息用来定位一个指定的程序,互联网地址(Internetaddress)和端口号(portnumber)。其中互联网地址由IP协议使用,而附加的端口号地址信息由传输协议使用(TCP/IP协议)解
4、析。 1.2套接字 Socket(套接字)是一中比较抽象的东西,利用编程程序来接受数据[2]。计算机网络编程程序根据TCP/IP协议中系统提供的程序来完成套接字的通讯。每一台计算机都有一个标识来识别计算机的应用程序。如果一个端口确定了一台主机上的一个套接字,那么主机中的多个程序可以学习参考.....对同一个套接字进行访问。在实际应用中,访问相同的套接字的不同程序一般属于同一个应用。Socket套接口有3种类型。一种SOCK_STREAM流式套接口,面向连接的,可靠地,TCP。第二种是SOCK_DRAM数据报套接口,面向无连接,不可靠,UDP。第三种是原始套接口,主要用
5、于新的网络协议实现的测试。 2Socket编程主要流程 编程分为服务器端和客户端两个方面。在进行Socket编程的时候,首先创建服务器套接字,服务器端通过Socket()建立一个套接字,然后通过bind()将创建的套接字绑接到要联系的IP地址和端口上,调用listen()监听链接请求,客户端通过接受指令,通过Socket()建立一个套接字,利用界面上的“connect”按钮,调用Connect()像服务器请求连接。在客户端完成Connect指令后,服务器端调用[3]accept()接受请求并返回新的套接字,通过返回的套接字与客户端进行通信,当在客户端点击Send()指
6、令时,服务器端就得调用receive()指令接受信息。在完成通信交流后,服务器端与客户端调用Close()关闭Socket(),宠儿终端连接。例如Daytime服务器,如下图所示。 3Socket网络编程技术实现 publicstaticsynchronizedvoidsetSocketFactory(SocketImplFactoryfac)throwsIOException这个方法设置系统(system)的服务器SocketImplFactory,这是用于创建学习参考..... ServerSocket对象的类库。它与创建Socket对象的类库有所不同,尽管语法
7、是相似的。可以用一个库创建Socket对象,用另一个库创建ServerSocket对象。但是在程序也可以只设置这个类库一次。试图第二次设置SocketImplFactory时会触发一个SocketException。 protectedfinalvoidimplAccept(Sockets)throwsIOExceptionServerSocket的子类使用这个方法实现accept()。可以把未连接的Socket对象传递到implAccept()(这样做同样要求实现Socket子类,因为标准的java.net.Socket类
此文档下载收益归作者所有