名称 说明
Socket(AddressFamily, SocketType, ProtocolType)

新实例初始化 Socket 类使用指定的地址族、 套接字类型和协议。

Socket(SocketInformation)

新实例初始化 Socket 类使用返回值的指定的值 DuplicateAndClose

Socket(SocketType, ProtocolType)

新实例初始化 Socket 类使用指定的套接字类型和协议。

属性

 
 
  名称 说明
AddressFamily

获取的地址族 Socket。

Available

获取已经从网络接收且可供读取的数据量。

Blocking

获取或设置一个值,该值指示是否 Socket 处于阻塞模式。

Connected

获取一个值,该值指示是否 Socket 连接到远程主机从上次以来 Send 或 Receive 操作。

DontFragment

获取或设置 Boolean 值,该值指定是否 Socket 允许 Internet 协议 (IP) 的数据报进行分片。

DualMode

获取或设置一个 Boolean 值,该值指定 Socket 是否是用于 IPv4 和 IPv6 的双模式套接字。

EnableBroadcast

获取或设置 Boolean 值,该值指定是否 Socket 可以发送或接收广播的数据包。

ExclusiveAddressUse

获取或设置 Boolean 值,该值指定是否 Socket 仅允许一个进程绑定到端口。

Handle

获取操作系统句柄 Socket。

IsBound

获取一个值,该值指示是否 Socket 绑定到特定本地端口。

LingerState

获取或设置一个值,指定是否 Socket 将延迟发送所有挂起的数据以尝试关闭套接字。

LocalEndPoint

获取本地终结点。

MulticastLoopback

获取或设置一个值,指定是否传出多播的数据包将传输到发送应用程序。

NoDelay

获取或设置 Boolean 值,该值指定是否流 Socket 使用 Nagle 算法。

OSSupportsIPv4

指示基础操作系统和网络适配器是否支持 Internet 协议版本 4 (IPv4)。

OSSupportsIPv6

指示基础操作系统和网络适配器是否支持 Internet 协议版本 6 (IPv6)。

ProtocolType

获取的协议类型 Socket。

ReceiveBufferSize

获取或设置一个值,指定的接收缓冲区的大小 Socket。

ReceiveTimeout

获取或设置一个值,指定的后的时间量同步 Receive 调用将会超时。

RemoteEndPoint

获取远程终结点。

SendBufferSize

获取或设置一个值,指定发送缓冲区的大小 Socket。

SendTimeout

获取或设置一个值,指定的后的时间量同步 Send 调用将会超时。

SocketType

获取 Socket 的类型。

SupportsIPv4

已过时。 获取一个值,该值指示 IPv4 支持是否可用且已启用当前主机上。

SupportsIPv6

已过时。 获取一个值,该值指示框架是否支持 IPv6 对于某些已过时 Dns 成员。

Ttl

获取或设置一个值,指定发送的 Internet 协议 (IP) 数据包的生存时间 (TTL) 值 Socket。

UseOnlyOverlappedIO

指定套接字是否应仅使用重叠的 I/O 模式。

方法

 
 
  名称 说明
Accept()

创建一个新 Socket 为新创建的连接。

AcceptAsync(SocketAsyncEventArgs)

开始一个异步操作以接受传入的连接尝试。

BeginAccept(AsyncCallback, Object)

开始一个异步操作以接受传入的连接尝试。

BeginAccept(Int32, AsyncCallback, Object)

开始异步操作以接受传入的连接尝试并接收第一个客户端应用程序所发送的数据块。

BeginAccept(Socket, Int32, AsyncCallback, Object)

开始异步操作以接受传入的连接尝试从指定的套接字并接收第一个客户端应用程序所发送的数据块。

BeginConnect(EndPoint, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。 主机由 IPAddress 和端口号指定。

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。 主机由 IPAddress 数组和端口号指定。

BeginConnect(String, Int32, AsyncCallback, Object)

开始一个对远程主机连接的异步请求。 主机由主机名和端口号指定。

BeginDisconnect(Boolean, AsyncCallback, Object)

开始一个异步请求来断开与远程终结点的连接。

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

开始异步接收数据从连接 Socket。

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

开始异步接收数据从连接 Socket。

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

开始异步接收数据从连接 Socket。

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

开始异步接收数据从连接 Socket。

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

开始以异步方式从指定的网络设备上接收数据。

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

开始异步接收指定的数据的字节数,到使用指定的数据缓冲区的指定位置 SocketFlags, ,并将终结点和数据包信息存储...

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

将数据异步发送到连接 Socket。

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

将数据异步发送到连接 Socket。

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

将数据异步发送到连接 Socket。

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

将数据异步发送到连接 Socket。

BeginSendFile(String, AsyncCallback, Object)

将文件发送 fileName 到连接 Socket 对象使用 UseDefaultWorkerThread 标志。

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

文件和数据缓冲区将异步发送到连接 Socket 对象。

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

以异步方式将数据发送到特定的远程主机。

Bind(EndPoint)

将相关联 Socket 与本地终结点。

CancelConnectAsync(SocketAsyncEventArgs)

取消对远程主机连接的异步请求。

Close()

关闭 Socket 连接和释放所有关联资源。

Close(Int32)

关闭 Socket 连接并释放所有与指定超时关联的资源,以允许要发送的数据排队。

Connect(EndPoint)

建立与远程主机的连接。

Connect(IPAddress, Int32)

建立与远程主机的连接。 主机指定的 IP 地址和端口号。

Connect(IPAddress[], Int32)

建立与远程主机的连接。 主机指定的 IP 地址数组和端口号。

Connect(String, Int32)

建立与远程主机的连接。 主机由主机名和端口号指定。

ConnectAsync(SocketAsyncEventArgs)

开始对到远程主机的连接的异步请求。

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

开始对到远程主机的连接的异步请求。

Disconnect(Boolean)

关闭套接字连接,并允许重用套接字。

DisconnectAsync(SocketAsyncEventArgs)

开始一个异步请求来断开与远程终结点的连接。

Dispose()

释放 Socket 类的当前实例所使用的所有资源。

Dispose(Boolean)

释放由 Socket 使用的非托管资源,并可根据需要释放托管资源。

DuplicateAndClose(Int32)

复制目标进程的套接字引用,并关闭此进程的套接字。

EndAccept(Byte[], IAsyncResult)

异步接受传入的连接尝试,并创建一个新 Socket 对象以处理远程主机通信。 此方法返回包含传输的初始数据的缓冲区。

EndAccept(Byte[], Int32, IAsyncResult)

异步接受传入的连接尝试,并创建一个新 Socket 对象以处理远程主机通信。 此方法返回包含初始数据和传输的字节数的缓冲区。

EndAccept(IAsyncResult)

异步接受传入的连接尝试,并创建一个新 Socket 来处理远程主机通信。

EndConnect(IAsyncResult)

结束挂起的异步连接请求。

EndDisconnect(IAsyncResult)

结束挂起的异步断开连接请求。

EndReceive(IAsyncResult)

结束挂起的异步读取。

EndReceive(IAsyncResult, SocketError)

结束挂起的异步读取。

EndReceiveFrom(IAsyncResult, EndPoint)

结束挂起的异步读取从特定的终结点。

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

结束挂起的异步读取从特定的终结点。 此方法还显示有关比数据包的详细信息 EndReceiveFrom

EndSend(IAsyncResult)

结束挂起的异步发送。

EndSend(IAsyncResult, SocketError)

结束挂起的异步发送。

EndSendFile(IAsyncResult)

结束挂起的异步发送的文件。

EndSendTo(IAsyncResult)

结束挂起的异步发送到特定位置。

Equals(Object)

确定指定的对象是否等于当前对象。(继承自 Object。)

Finalize()

释放 Socket 类使用的资源。(覆盖 Object.Finalize()。)

GetHashCode()

作为默认哈希函数。(继承自 Object。)

GetSocketOption(SocketOptionLevel, SocketOptionName)

返回指定的值 Socket 选项时,表示为一个对象。

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

返回指定 Socket 选项设置,表示为字节数组。

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

返回指定的值 Socket 数组中的选项。

GetType()

获取当前实例的 Type。(继承自 Object。)

IOControl(Int32, Byte[], Byte[])

设置为低级别操作模式 Socket 使用数字控制代码。

IOControl(IOControlCode, Byte[], Byte[])

设置为低级别操作模式 Socket 使用 IOControlCode 枚举来指定控制代码。

Listen(Int32)

位置 Socket 处于侦听状态。

MemberwiseClone()

创建当前 Object 的浅表副本。(继承自 Object。)

Poll(Int32, SelectMode)

确定的状态 Socket。

Receive(Byte[])

从绑定接收数据 Socket 到接收缓冲区中。

Receive(Byte[], Int32, Int32, SocketFlags)

从绑定接收指定的数目的字节 Socket 到接收缓冲区的指定偏移量的位置,使用指定 SocketFlags

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

从绑定接收数据 Socket 存入接收缓冲区,使用指定 SocketFlags

Receive(Byte[], Int32, SocketFlags)

从绑定接收指定的数目的数据的字节 Socket 存入接收缓冲区,使用指定 SocketFlags

Receive(Byte[], SocketFlags)

从绑定接收数据 Socket 存入接收缓冲区,使用指定 SocketFlags

Receive(IList<ArraySegment<Byte>>)

从绑定接收数据 Socket 的接收缓冲区的列表中。

Receive(IList<ArraySegment<Byte>>, SocketFlags)

从绑定接收数据 Socket 入接收缓冲区列表中,使用指定 SocketFlags

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

从绑定接收数据 Socket 入接收缓冲区列表中,使用指定 SocketFlags

ReceiveAsync(SocketAsyncEventArgs)

开始一个异步请求,以便接收来自连接的数据 Socket 对象。

ReceiveFrom(Byte[], EndPoint)

到数据缓冲区中接收数据报并存储终结点。

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

使用指定的 SocketFlags 将指定的数据字节数接收到数据缓冲区的指定位置,并存储终结点。

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

将指定的数目的字节接收到的数据缓冲区,使用指定 SocketFlags, ,并将存储终结点。

ReceiveFrom(Byte[], SocketFlags, EndPoint)

接收到数据缓冲区,使用指定的数据报 SocketFlags, ,并将存储终结点。

ReceiveFromAsync(SocketAsyncEventArgs)

开始以异步方式从指定的网络设备上接收数据。

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

接收到指定数据缓冲区,使用指定的位置指定的数据的字节数 SocketFlags, ,并将终结点和数据包信息存储。

ReceiveMessageFromAsync(SocketAsyncEventArgs)

开始异步接收指定的数据的字节数,到使用指定的数据缓冲区中的指定位置 SocketAsyncEventArgs.SocketFlags, ,并将终结点和数据包信息存储。

Select(IList, IList, IList, Int32)

确定一个或多个套接字的状态。

Send(Byte[])

将数据发送到连接 Socket。

Send(Byte[], Int32, Int32, SocketFlags)

从指定偏移量开始,使用指定 SocketFlags,将指定的数据字节数发送到已连接的 Socket。

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

发送到已连接的指定的数据的字节数 Socket, ,按指定偏移量,从开始,使用指定 SocketFlags

Send(Byte[], Int32, SocketFlags)

发送到已连接的指定的数据的字节数 Socket, ,使用指定 SocketFlags

Send(Byte[], SocketFlags)

将数据发送到连接 Socket 使用指定 SocketFlags

Send(IList<ArraySegment<Byte>>)

列表中的一组缓冲区发送到连接 Socket。

Send(IList<ArraySegment<Byte>>, SocketFlags)

列表中的一组缓冲区发送到连接 Socket, ,使用指定 SocketFlags

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

列表中的一组缓冲区发送到连接 Socket, ,使用指定 SocketFlags

SendAsync(SocketAsyncEventArgs)

将数据异步发送到连接 Socket 对象。

SendFile(String)

将文件发送 fileName 到连接 Socket 对象 UseDefaultWorkerThread传输标志。

SendFile(String, Byte[], Byte[], TransmitFileOptions)

通过指定的 TransmitFileOptions 值,将文件 fileName 和数据缓冲区发送到连接的 Socket 对象。

SendPacketsAsync(SocketAsyncEventArgs)

集合中的文件或在内存中数据缓冲区将异步发送到连接 Socket 对象。

SendTo(Byte[], EndPoint)

将数据发送到指定的终结点。

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

将指定的数据的字节数发送到指定的终结点,在缓冲区中的指定位置开始并使用指定 SocketFlags

SendTo(Byte[], Int32, SocketFlags, EndPoint)

将指定的数据的字节数发送到指定的终结点使用指定 SocketFlags

SendTo(Byte[], SocketFlags, EndPoint)

将数据发送到特定终结点使用指定 SocketFlags

SendToAsync(SocketAsyncEventArgs)

以异步方式将数据发送到特定的远程主机。

SetIPProtectionLevel(IPProtectionLevel)

套接字设置 IP 保护级别。

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

设置指定 Socket 到指定的选项 Boolean 值。

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

设置指定 Socket 选项指定的值,表示为字节数组。

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

设置指定 Socket 选项指定的整数值。

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

设置指定 Socket 选项指定的值,表示为一个对象。

Shutdown(SocketShutdown)

禁用发送和接收的 Socket。

ToString()

返回表示当前对象的字符串。(继承自 Object。)

示例

 
 

下面的代码示例演示如何 Socket 类可以用于将数据发送到 HTTP 服务器并接收响应。 此示例中受到阻止,直到收到整个页面。

 
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets; public class GetSocket
{
private static Socket ConnectSocket(string server, int port)
{
Socket s = null;
IPHostEntry hostEntry = null; // Get host related information.
hostEntry = Dns.GetHostEntry(server); // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
// an exception that occurs when the host IP Address is not compatible with the address family
// (typical in the IPv6 case).
foreach(IPAddress address in hostEntry.AddressList)
{
IPEndPoint ipe = new IPEndPoint(address, port);
Socket tempSocket =
new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); tempSocket.Connect(ipe); if(tempSocket.Connected)
{
s = tempSocket;
break;
}
else
{
continue;
}
}
return s;
} // This method requests the home page content for the specified server.
private static string SocketSendReceive(string server, int port)
{
string request = "GET / HTTP/1.1\r\nHost: " + server +
"\r\nConnection: Close\r\n\r\n";
Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
Byte[] bytesReceived = new Byte[256]; // Create a socket connection with the specified server and port.
Socket s = ConnectSocket(server, port); if (s == null)
return ("Connection failed"); // Send request to the server.
s.Send(bytesSent, bytesSent.Length, 0); // Receive the server home page content.
int bytes = 0;
string page = "Default HTML page on " + server + ":\r\n"; // The following will block until te page is transmitted.
do {
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
}
while (bytes > 0); return page;
} public static void Main(string[] args)
{
string host;
int port = 80; if (args.Length == 0)
// If no server name is passed as argument to this program,
// use the current host name as the default.
host = Dns.GetHostName();
else
host = args[0]; string result = SocketSendReceive(host, port);
Console.WriteLine(result);
}
}

Socket 类的更多相关文章

  1. PHP socket类

    没事的时候自己封装了一个socket类 功能非常easy和curl功能是一样的 class socketClass{ private $host; private $url; private $err ...

  2. ServerSocket与Socket类

    ServerSocket与Socket类 TCP套接字协议: TCP最主要的特征就是能够建立长时间的连接,而且能够保证数据安全的送达,但是速度比较慢.使用TCP进行连接的时候会有三次握手,之后才建立起 ...

  3. Socket类 以及 ServerSocket类 讲解

    Socket类 套接字是网络连接的端点,套接字使应用可以从网络中读取数据,可以向网络中写入数据.不同计算机上的两个应用程序可以通过连接发送或接收字节流,以此达到相互通信的目的. 为了从一个应用程序向另 ...

  4. socket系列之客户端socket——Socket类

    假设TCP套接字服务器端已经建立好并正在监听客户端的连接了,那么客户端就可以通过Socket类来发起连接.客户端发起一个连接请求后,就被动地在等待服务器的响应.这个类同样位于java.net包中,包含 ...

  5. java网络编程ServerSocket类 和Socket类的常用构造方法及其方法

    Socket类Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号.Socket(String host, int po ...

  6. 详解 ServerSocket与Socket类

    (请观看本人博文 -- <详解 网络编程>) 目录 ServerSocket与Socket ServerSocket 类: Socket类: ServerSocket与Socket 首先, ...

  7. 【Android编程】Java利用Socket类编写Metasploit安卓载荷辅助模块

    /作者:Kali_MG1937 CSDN博客:ALDYS4 QQ:3496925334/ 注意!此文章被作者标记到 黑历史 专栏中,这意味着本篇文章可能存在 质量低下,流水账文,笔法低质 的问题 为了 ...

  8. 编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)

    查看本章节 查看作业目录 需求说明: 小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱.现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的 ...

  9. 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon socket"类情况

    Docker安装命令: 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon ...

随机推荐

  1. J2CACHE 两级缓存框架

    概述 缓存框架我们有ehcache 和 redis 分别是 本地内存缓存和 分布式缓存框架.在实际情况下如果单台机器 使用ehcache 就可以满足需求了,速度快效率高,有些数据如果需要多台机器共享这 ...

  2. 4k项目--PHY通道绑定的两种模式

    1.通道绑定有两种模式: • PMA bonding• PMA and PCS bonding GT通道是不支持通道绑定的 2.PMA绑定 PMA绑定减少了PMA之间的通道之间的Skew.并且在PMA ...

  3. Release file is expired, Updates for this repository will not be applied.(资源索引文件过期问题)

    将Debian下载源同步到本地之后,通过本地资源地址进行apt update操作时提示过期问题: E: Release file for http://localhost/security/dists ...

  4. tab下图片要求

    下面是每个tab的属性: 属性 类型 必填 说明 pagePath String 是 页面路径,必须在pages中先定义 text String 是 tab上按钮文字 iconPath String ...

  5. _ZNote_Objective-C_用终端编译OC程序

    某些情况下,仅仅想写一些简单的代码,可以不用Xcode,仅仅使用终端即可编译OC程序. 打开终端. 输入vi test.m 输入一下代码: #import <Foundation/Foundat ...

  6. Tomcat 多项目部署方法整理

    Tomcat 多项目部署方法整理 说明:tomcat-deploy-aaa和tomcat-deploy-bbb是两个不同的web项目,为了方便以下简称aaa和bbb,请先自行创建并跑通 导航: NO1 ...

  7. Shiro 基础教程

    原文地址:Shiro 基础教程 博客地址:http://www.extlight.com 一.前言 Apache Shiro 是 Java 的一个安全框架.功能强大,使用简单的Java安全框架,它为开 ...

  8. 定时任务 Wpf.Quartz.Demo.5 (升级版)

    老规矩:先把全部源码上传,见本文底部. 相对于Demo3的区别,就是能自动加载继承了IJob的任务,任务主体程序分离. 在exe执行文件的同级下建一个MyJobs的文件夹,每次会自动扫描该文件夹下的J ...

  9. 剑指offer编程题Java实现——面试题8旋转数组的最小数字

    剑指offer面试题8:旋转数组的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1, ...

  10. 线程误区-join,wait(里边还是调用的wait)

    1.一个线程执行结束后会执行该线程自身对象的notifyAll方法,这个是在jvm中实现的. 2.join的作用是:当我们调用某个线程的这个方法时,这个方法会挂起调用线程,直到被调用线程(thread ...