⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysocket.aspx.cs

📁 ASP C#代码实例 适合初学人士学习使用
💻 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 + -