实验二 Socketsocket通信报文格式下的点对点通信的实现
一、实验目的
理解Socket的基本概念工作原理,掌握Socket的建立、监听、连接、发送数据和接收数据。
二、实验内容
采用Java(c++)语言编写网络上的点对点的Socket程序。该程序必须能在服务器端实现监听连接请求,客户端实现发送连接请求的功能,在建立连接后进行发送和接收数据的功能。
三、实验要求
实验课时为4学时。要求完成在服务器端和客户端的源程序的编写,并作出分析。
具体要求如下:
1、服务器端建立一个Socket,设置好本机的IP和监听的端口与Socket进行绑定,开始监听连接请求,当接收到连接请求后,发出确认,同客户端建立连接,开始与客户端进行通信。
2、客户端建立一个Socket,设置好服务器端的IP和提供服务的端口,发出连接请求, 在收到服务器的确认后,建立连接,开始与服务器端进行通信。
3、服务器端和客户端的连接及它们之间的数据传送均采用同步方式。
socket 的基本概念
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向连路的一端成为一个Socket。Socket通常用来实现客户方和服务方的连接。它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。在Java等语言中,有专门的Socket类来处理用户的请求和响应。利用Socket类的方法,就可以实现两台计算机之间的通讯。
Host A上的程序A将一段信息写入Socket中,Socket的内容被Host A的网络管理软件访问,并将这段信息通过Host A的网络接口卡发送到Host B,Host B的网络接口卡接收到这段信息后,传送给Host B的网络管理软件,网络管理软件将这段信息保存在Host B的Socket中,然后程序B才能在Socket中阅读这段信息。
假设第二个程序被加入图1的网络的Host B中,那么由Host A传来的信息如何能被正确的传给程序B而不是传给新加入的程序呢?这是因为每一个基于TCP/IP网络通讯的程序都被赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留Socket中的输入/输出信息,端口号是一个16位无符号整数,范围是0-65535,以区别主机上的每一个程序,低于256的端口号保留给标准应用程序,比如pop3的端口号就是110,每一个套接字都组合进了IP地址、端口、端口号,这样形成的整体就可以区别每一个套接字。
无论一个socket通信的功能多么齐全,程序多么复杂,其基本结构都是一样的,都包括以下四个步骤:
1、创建socket;
2、打开连接到socket的输入输出流;
3、按照一定的协议对socket进行读写操作;
4、关闭socket。
具体内容参看计算机网络实验socket编程.pdf第七章7.1
Vc6.0编程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论