计算机网络实验 Socket消息传输程序的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南科技大学
计算机网络A实验报告
院系 _ __信息工程学院
班级 _ _ 物联网183
实验五 Socket消息传输程序的实现
一、实验目的
1、学习掌握高级语言Socket编程的方法。
2、掌握TCP/IP协议,了解套接字等概念。
3、针对具体的应用要求(实时传输数据/文件/图像/聊天室),编程实现。
二、实验原理
1、网络编程的基本模型就是客户机到服务器模型,简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置。并去建立两者之间的联系,然后完成数据的通讯就可以了,这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端,基于这个简单的模型,就可以进入网络编程。
2、客户机/服务器模型是一个应用程序开发框架,该框架是为了将数据的表示与其内部的处理和存储分离开来而设计的。客户机请求服务,服务器为这些请求服务。请求通过网络从客户机传递到服务器。服务器所进行的处理对客户机而言是隐藏的。一个服务器可以为客户机服务。
3、一个服务器可以同时和多台客户机进行通讯。
三、实验条件
1.软件环境:windows操作系统,VC++ 6.0编程软件。
2.硬件环境:1台计算机。
四、实验学时
2学时
五、实验时间
第十四周周二19:00-21:00
六、实验地点
工科2软件一机房和软件二机房
七、实验内容与完成情况
1.实验内容
(1)掌握TCP原理。
(2)用套接字(Socket)编程实现网络文字传输。
2.完成情况
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using ;
using .Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace jiwang
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Thread threadWatch = null;
Socket socketWatch = null;
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e) {
}
private void btnServerConn_Click(object sender, EventArgs e) {
try
{
socketWatch = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp)
IPAddress ipaddress = IPAddress.Parse(this.txtIP.Text.Trim()); IPEndPoint endpoint = new IPEndPoint(ipaddress,
int.Parse(this.txtPort.Text.Trim()));
socketWatch.Bind(endpoint);
socketWatch.Listen(20);
threadWatch = new Thread(WatchConnecting)
threadWatch.IsBackground = true;
threadWatch.Start();
txtMsg.AppendText("开始监听客户端传来的信息!" + "\r\n");
this.btnServerConn.Enabled = false;
}
catch (Exception ex)
{
txtMsg.AppendText("服务端启动服务失败!" + "\r\n");
this.btnServerConn.Enabled = true;
}
}
Socket socConnection = null;
///
///监听客户端发来的请求
///
private void WatchConnecting()
{
while (true)
{
socConnection = socketWatch.Accept();
txtMsg.AppendText("客户端连接成功! " + "\r\n");
ParameterizedThreadStart pts = new
ParameterizedThreadStart(ServerRecMsg);
Thread thr = new Thread(pts);
thr.IsBackground = true;
thr.Start(socConnection);
}
}
///
///发送信息到客户端的方法
///
///发送的字符串信息
private void ServerSendMsg(string sendMsg)
{
try