ASP.NET--使用Socket发送和接收消息[转载]
2008-07-14 16:16
489 查看
使用Socket发送和接收消息
在ASP.NET应用程序中,可以通过Socket发送和接收消息。发送的消息可以是文本内容、文件或其他类型的数据。本实例介绍使用System.Net.Sockets名字空间中的方法发送和接收文件的方法。
在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所示的初始界面。
![](http://book.csdn.net/BookFiles/259/img/image036.jpg)
图12-21 页面MySocket.aspx的初始界面
在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所示的初始界面。
![](http://book.csdn.net/BookFiles/259/img/image036.jpg)
图12-21 页面MySocket.aspx的初始界面
相关文章推荐
- ASP.NET中将数据作为XML数据发送 使用 Request.InputStream 接收
- ASP.NET之SOAP的发送、接收与处理类 [转载]
- asp.net使用Socket.Send发送信息及Socket.SendFile传输文件的方法
- 如何使用 ASP.NET Web 服务和 Visual C# .NET 发送和接收二进制文档
- VB.net基础:使用UDP发送和接收消息
- QUdpSocket简单使用Demo(局域网内发送给所有客户端消息与接收)
- Asp.net Socket 客户端(发送和接收数据
- ASP.NET MVC 使用带有短横线的html Attributes(转载)
- .Net下RabbitMQ的使用(2) -- 发送接收消息
- ASP.NET MVC前台js发送数组,后台用数组接收
- ASP.Net环境下使用Jmail组件发送邮件
- 在ASP.NET 2.0中使用样式、主题和皮肤(转载)
- ASP.NET中常用功能代码总结(7)——利用Jmail发送和接收邮件
- (转载)使用asp.net开发切忌!
- c#如何使用socket发送一条记录再接收一条记录,服务器端及客户端如何编写,初学。。最好有代码,谢谢!
- Asp.net下使用Jquery Ajax传送和接收DataTable的代码
- activemq使用JMS发送消息和接收消息
- asp.net下集成(Active Messenger)AM消息发送组件