您的位置:首页 > 编程语言 > ASP

ASP.NET--使用Socket发送和接收消息[转载]

2008-07-14 16:16 489 查看
使用Socket发送和接收消息
在ASP.NET应用程序中,可以通过Socket发送和接收消息。发送的消息可以是文本内容、文件或其他类型的数据。本实例介绍使用System.Net.Sockets名字空间中的方法发送和接收文件的方法。

技术要点

本实例介绍如何使用ASP.NET通过System.Net.Sockets名字空间中的方法发送和接收文件。在发送过程中,首先介绍读取文件的方法,并把文件读取到二进制数组中,然后使用Sockets中的Send()方法发送文件的数据。

跟我做

1.创建新ASP.NET应用程序

在Visual Studio .NET 2003集成开发环境中创建新的ASP.NET Web应用程序,命名为Example_12_7。

2.设计页面MySocket.aspx

把应用程序Example_12_7的默认页面WebForm1.aspx重命名为MySocket.aspx,并在该页面上添加,页面MySocket.aspx的设计界面如图12-19所示。

<%@ Page language="c#" Codebehind="MySocket.aspx.cs" AutoEventWireup="false" Inherits="Example_12_7.MySocket" %>

<HTML>

<HEAD>

<title>Example_12_7:使用Socket发送和接收消息</title>

</HEAD>

<asp:Label id="LabelMessage" runat="server">网页正在发送数据,请等待……</asp:Label>

<asp:Button ID="ReceiveBtn" Runat="server" Text="接收数据"></asp:Button>

<asp:Label id="LabelData" runat="server"></asp:Label></td>

</HTML>

3.添加Socket名字空间

由于页面MySocket.aspx在发送和接收信息时需要使用Socket类实现HTTP等一些属性,它们被包含在名字空间System.Net和System.Net.Sockets中,因此需要引入这些名字空间。程序代码如下:

//引入名字空间

using System.Net;

using System.IO;

using System.Net.Sockets;

4.创建被发送的文件myFile.txt

在应用程序Example_12_7的根目录下创建使用Socket发送的文件myFile.txt,它为一个text类型的文本文件,其内容如图12-20所示。

private void Page_Load(object sender, System.EventArgs e)

private void SocketSend()

private void ReceiveBtn_Click(object sender, System.EventArgs e)

private void SendReceiveData()

{

//创建接收数据的Socket

Socket receiveSocket = new Socket(AddressFamily.InterNetwork,

SocketType.Stream, ProtocolType.Tcp);

//设置接收数据的地址

IPEndPoint hostPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80);

//设置端口

receiveSocket.Bind(hostPoint);

//监听

receiveSocket.Listen(2);

//设置接收数据缓冲区的大小

Byte[] recData = new Byte[300000000];

Socket hostSocket = receiveSocket.Accept();

//接收数据

hostSocket.Receive(recData);

if (hostSocket.Receive(recData) > 0)

{

//显示接收数据的信息

LabelData.Text = "网页在" + DateTime.Now.ToString()

+ "接收的数据大小为:" + hostSocket.Receive(recData).ToString();

}

//创建一个新文件保存接收的数据

FileStream fileStream = new FileStream(Server.MapPath("myNewFile.dat"),

FileMode.OpenOrCreate);

BinaryWriter writer = new BinaryWriter(fileStream);

writer.Write(recData, 0, recData.Length - 1);

//关闭写文件流

fileStream.Close();

writer.Close();

//关闭接收数据的Socket

hostSocket.Shutdown(SocketShutdown.Receive);

hostSocket.Close();

}
运行效果

设置页面MySocket.aspx为应用程序的起始页面。按F5键运行,出现如图12-21所示的初始界面。



图12-21 页面MySocket.aspx的初始界面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: