📄 mysocket.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace Example_12_7
{
/// <summary>
/// Summary description for MySocket.
/// </summary>
public class MySocket : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button ReceiveBtn;
protected System.Web.UI.WebControls.Label LabelData;
protected System.Web.UI.WebControls.Label LabelMessage;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
///发送数据
SocketSend();
}
}
private void SocketSend()
{
///创建发送数据的Socket
Socket sendsocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
///设置发送数据的地址
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"),80);
///创建读取文件的流
FileStream fileSteam = new FileStream(Server.MapPath("myFile.txt"),FileMode.OpenOrCreate,FileAccess.Read);
///文件大小
Byte[] fsSize = new Byte[fileSteam.Length - 1];
///读取文件的二进制流
BinaryReader reader = new BinaryReader(fileSteam);
///读取数据
reader.Read(fsSize,0,(int)fileSteam.Length -1);
///链接目的地
sendsocket.Connect(endPoint);
///发送数据
sendsocket.Send(fsSize);
///关闭文件流
fileSteam.Close();
///关闭发送数据的Socket
sendsocket.Shutdown(SocketShutdown.Send);
sendsocket.Close();
}
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();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.ReceiveBtn.Click += new System.EventHandler(this.ReceiveBtn_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void ReceiveBtn_Click(object sender, System.EventArgs e)
{
///接收数据
SendReceiveData();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -