
SOCKET编程实验报告SOCKET编程实验报告精选八篇.docx
15页SOCKET编程实验报告SOCKET编程实验报告精选八篇 篇一 :Socket编程 实验报告实验名称:利用Socket进行网络编程班级:软件实验目的 学号:0 姓名:熟悉和掌握socket编程的基本理论和方法掌握基于TCP和UDP的工作原理以及Socket编程的一般方法,能够编写简单的网络应用程序实验要求掌握一些windows XP下的网络命令,记录实验的过程、结果以及遇到的问题及解决方法,并撰写实验总结实验过程1. 了解Socket编程的工作过程2. 实用UDP进行编程,实现简单的聊天程序3. 下图为我自己编写的实验代码,该聊天程序,实现了客户端和服务器之间的聊天功能,使用UDP和线程相关知识编写而成当客户端输入聊天内容后,服务器收到聊天内容,然后,服务器可以回复客户端,如下图为服务器端的实验结果4.具体代码见附录调试过程实验过程总体比较顺利,但是在客户端,开始只声明了一个DatagramPacket对象,即我在客户端发送数据,和接受数据时,都只用这一个packet,开始认为,接收到的新的packet会覆盖掉原来的那个,但是事实上是,收到的packet确实被收到的数据更新了,但是由于这个对象在内存中的对象还是和发送是声明的那个一样,所以,如果客户端发送三个字,而服务器恢复客户端5个字,结果客户端只能收到三个字,因为,客户端的packet在发送数据时就已经确定了它发送和接受数据的长度,即三个字,所以导致,在客户端发送内容少于服务器回复的内容时,客户端只能接收到服务器发来的部分内容。
后来,在客户端又声明了一个新的接受数据的DatagramPacket,问题得以解决总结经过这次试验,我进一步理解和复习了UDP的socket编程的工作过程和原理,对比TCP,UDP更加简单,快速,因为它本身就是面向无连接的,所以在编程的时候,服务器和客户端其实分得 不是很清楚,许多代码都可以共用,通信的双方处于基本对等的地位, 并且在这次试验中,在修改客户端的DatagramPacket 时,得到的经验很宝贵,让我进一步理解了对象在内存中的实际模型,所以,在实际编程中,一定要实时的在自己的脑海中树立内存模型的概念…… …… 篇二 :Socket编程实验报告实验报告实验一 Socket编程一、实验目的通过socket程序的编写、调试,掌握socket编程的基本方法,了解客户端与服务器端的特点,掌握并熟悉运用socket类与ServerSocket类二、实验内容①学习socket编程使用的类和接口,着重掌握基于TCP协议的socket ②编写服务器端的应用程序③编写客户端的应用程序④实现服务器端与客户端的交互三、实验代码1.服务器端程序过程:在端口5000上创建一个等待连接的ServerSocket对象server:server=new ServerSocket(5000);接着调用server对象的accept()方法等待某客户程序发出连接请求。
该方法一直阻塞直到有客户连接到带端口一旦有客户发送正确请求,则连接成功,accept()方法返回一个Socket对象,于是得到了一个新的用于通信的Socket对象,通信链路建立成功然后利用Socket类提供的方法创建Socket对象的输入流和输出流此后即于客户端进行通信,直到客户端断开连接即关闭各个流结束通信代码如下:import .*;import java.io.*;class aa{static public void main (String args[]) throws IOException{ServerSocket server=null;Socket socket=null;InputStream is=null;OutputStream os=null;DataInputStream in=null;PrintStream out=null;try{ //在端口5000注册服务server=new ServerSocket(5000);…… …… 篇三 :socket编程实验报告姓名: 学院: 实验时间: 计算机网络实验 题目:Socket编程 实验1 基于UDP的Socket编程 实验2 基于TCP的Socket编程 学号: 年级:目录一、实验内容: ............................................................................................................................... 3实验1 基于UDP的Socket编程 ........................................................................................... 3实验2 基于TCP的Socket编程 ............................................................................................ 3二、 程序设计 ................................................................................................................................. 31 基于UDP的Socket编程 .................................................................................................. 31.1 实验原理:基于UDP协议的无连接C/S的工作流程 .......................................... 31.2 实现方案和实验结果 ................................................................................................ 4…… …… 篇四 :socket编程-实验报告数学与计算机学院 计算机网络 实验报告年级 学号 姓名 成绩 专业 网络工程 实验地点 指导教师实验项目 socket点对点聊天工具 实验日期 2012-5-12一、 实验目的通过本实验熟悉和掌握socket编程的基本理论和方法。
掌握给予TCP的工作原理以及socket编程的一般方法,能够编写简单的点对点网络聊天应用程序二、 实验原理在Visual Studio2005的运行环境下,用c#语言编写,socket套接字可实现网络的连接和数据在两台电脑间的相互传输运用相应的包可实现字体和颜色的改变利用线程对程序进行控制三、 实验要求可进行点对点的聊天,要求字可以进行颜色和字体的改变可通过使用socket套接字进行两台电脑的连接与数据传输四、 实验步骤、结果(程序+注释+截图)及分析共6页 第1页 11、定义一些全局变量,控制程序的执行,代码如下:private Socket socket;//定义套接字private Thread thread1;//定义线程private IPAddress ip = IPAddress.Parse("127.0.0.1");//定义IP地址,并给其一个初始值2、与客户端进行监听,代码如下:try{ip = IPAddress.Parse(this.tb_IP.Text); //输入IP地址检查格式是否正确 }catch{MessageBox.Show("地址格式不对,请重新输入!");return;}try{if (tb_port.Text == "") //对输入的端口号进行检查,看其是否符合要求 {…… …… 篇五 :实验二:基于TCPUDP的Socket编程实验二:基于TCP/UDP的Socket编程[实验目的]:熟悉和掌握socket编程的基本理论和方法。
掌握基于TCP和UDP的工作原理以及Socket编程的一般方法,能够编写简单的网络应用程序[实验要求]:请在以下题目中选择一个,按照要求完成实验,并完成实验报告实验不分组编程可以使用任何高级语言,建议使用java或C++实验2.1:基于TCP and UDP的socket编程1、 实验内容:a) 利用Java或C++语言,分别基于TCP和UDP编写一个简单的Client/Server网络应用程序要求实现客户向服务器传输任意一个字符串,服务器将收到的字符串变换成大写后传回客户b) 修改上述程序,实现服务器根据客户请求,将服务器端指定的文件可靠地传输给客户如果服务器没有指定的文件,服务器将给客户返回一个信息,通知客户其请求文件不存在c) 有条件的同学可以进一步改进b)的程序,使之更实用比如可以请求服务器先传输目录,然后客户根据目录请求传输文件等2、 实验方式:每位同学上机编程实验,实验指导教师现场指导程序可参考附录的程序1、程序2、程序3和程序4(程序中有错误需完善)3、 实验报告:在实验报告中要说明Socket编程的客户端和服务器端主要步骤、利用Java语言用到的主要类及其主要作用、TCP和UDP编程的主要差异和特点、你所实现的文件传输的程序代码、实验过程和实验结果。
Client端java程序源代码:package internet;import java.io.*;import .*; class client{ public static void main(String argv[]) throws Exception { String sentence; //声明字符串变量用于存储字符串输入和传送 String modifiedSentence;//从服务器得到,并送到用户标准输出 System.out.println("请输入将要转换的字符串"); BufferedReader inFromUser = new BufferedReader( //创建 new InputStreamReader(System.in)); //将流连接到标准输入 inFromUser程序的输入流…… …… 篇六 :_socket编程实验报告姓名吴文珊 学号_0909102525一.实验题目学习Socket网络编程,实现两台机器互相通信二.需求分析(1)输入的形式:服务器端输入监听端口号,客户端输入要连接的地址(字符串或者点分10进制地址)、端口号、向服务器发送的内容,服务器也可向客户端发送。
2)输出的形式:客户端连接成功后,服务器显示客户端地址,收到消息并显示消息来源的ip地址3)程序所能达到的功能:服务器完成某指定端口的监听、选择连接、接收客户端消息;客户端指定要通信的主机名或地址、指定端口号、请求连接、发送消息三.程序流程程序中用到的通信函数由Winsock2.h库提供,无须再定义函数调用关系如下图:服务器: bind() 客户端: Socket()四.调试过程中遇到的问题1.开始事选择在C-free软件下调试,发现编译通不过,一直显示函数未定义,反复修改也无法解决,通过查阅相关资料,这个问题与编译器的选择有关,于是选择在V。












