当前位置:  编程技术>.net/c#/asp.net

使用C#开发Socket通讯的方法

    来源: 互联网  发布时间:2014-10-13

    本文导语:  下面的示例显示如何使用 Socket 类向 HTTP 服务器发送数据和接收响应。  [C#]  public string DoSocketGet(string server)  {  //Sets up variables and a string to write to the server  Encoding ASCII = Encoding.ASCII;  string Get = "GET / HTTP/1.1rn...

下面的示例显示如何使用 Socket 类向 HTTP 服务器发送数据和接收响应。 

[C#] 
public string DoSocketGet(string server) 

//Sets up variables and a string to write to the server 
Encoding ASCII = Encoding.ASCII; 
string Get = "GET / HTTP/1.1rnHost: " + server + 
"rnConnection: Closernrn"; 
Byte[] ByteGet = ASCII.GetBytes(Get); 
Byte[] RecvBytes = new Byte[256]; 
String strRetPage = null; 

// IPAddress and IPEndPoint represent the endpoint that will 
// receive the request. 
// Get the first IPAddress in the list using DNS. 
IPAddress hostadd = Dns.Resolve(server).AddressList[0]; 
IPEndPoint EPhost = new IPEndPoint(hostadd, 80); 

//Creates the Socket for sending data over TCP. 
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, 
ProtocolType.Tcp ); 

// Connects to the host using IPEndPoint. 
s.Connect(EPhost); 
if (!s.Connected) 

strRetPage = "Unable to connect to host"; 
return strRetPage; 


// Sends the GET text to the host. 
s.Send(ByteGet, ByteGet.Length, SocketFlags.None); 

// Receives the page, looping until all bytes are received 
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0); 
strRetPage = "Default HTML page on " + server + ":rn"; 
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes); 

while (bytes > 0) 

bytes = s.Receive(RecvBytes, RecvBytes.Length, SocketFlags.None); 
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes); 

//如果想立即关闭连接则调用 s.Close(); 
return strRetPage; 

    
 
 

您可能感兴趣的文章:

  • c#中SAPI使用总结——SpVoice的使用方法
  • c#友好显示日期 c#日期datetime使用方法
  • 请问在工作岗位的朋友!使用java开发的公司对c#的态度如何?
  • c#自带缓存使用方法 c#移除清理缓存
  • C#中的switch case使用介绍
  • c# 空合并运算符“??”的使用详解
  • 使用C#实现在屏幕上画图效果的代码实例
  • 深入C#中使用SqlDbType.Xml类型参数的使用详解
  • c#闭包使用方法示例
  • c# split分隔字符串使用方法
  • c#的params参数使用示例
  • c#使用资源文件的示例
  • 使用C# Winform应用程序获取网页源文件的解决方法
  • C#将时间转成文件名使用方法
  • C# 使用匿名函数解决EventHandler参数传递的难题
  • 使用C#获取系统特殊文件夹路径的解决方法
  • C#使用带like的sql语句时防sql注入的方法
  • C#可选参数的相关使用
  • C# 静态构造函数使用总结
  • C# WndProc的使用方法示例
  • 你们在LINUX下面使用什么即时通讯联系工具?
  • 大家把进程间通讯用在什么方面?怎么使用才是好
  • 想实现B/S结构的应用,使用Applet和Servlet通讯,还是使用RMI技术比较好?
  • socket通讯使用select的问题
  • 使用TCP协议通讯,如果有很多种数据要传输,如:注册信息等,在C++中,我们可以使用结构,java中通常大家又是如何打包的呢?
  • 怎么使用socket与指定IP和端口下的服务通讯
  • C#程序窗体间使用回调事件方式通讯示例
  • android使用handler ui线程和子线程通讯更新ui示例
  • 使用ACE库为何局域网通讯OK,而广域网却不OK?
  • [急切求助]使用SYS V消息队列实现进程间通讯问题!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在div中使用css让文字底部对齐的方法
  • 弱智问题:我们怎么才知道要使用的方法需要实现什么接口才能使用这个方法呢?
  • linux下c/c++使用hash_map方法介绍
  • JAVA中不赞成使用(Deprecated)的方法是否可以使用
  • ftp协议介绍及ftp常用的上传下载等操作命令使用方法
  • 有没有方法在 非solaris 的 unix下,比如说 sco unix 下面,使用 j2se 的方法!
  • 我初学NETTERM的使用,在哪里可以找到所有(或常用的)命令的使用方法呢?还是需要在什么书上可以找到?
  • 类的方法和实例方法,类字段和实例字段有什么不同,在使用上?
  • 用JDBC-ODBC访问ACCESS,能不能用ResultSet的deleteRow()方法?我怎么用的不行?另外,我在使用CachedRowSet类时,当调用acceptChange()方法时
  • 使用DateTime的ParseExact方法实现特殊日期时间的方法详解
  • jquery链式操作的正确使用方法
  • 关于telnet xxx.xxx.xxx.xxx:80的使用方法问题
  • jquery append()方法与html()方法的区别及使用介绍
  • 我用的是红帽5 我想知道我LINUX下的KDbg的使用方法
  • 谁能告诉我哪里能找到java包内部类及方法使用介绍
  • Javascript里的两种使用正则的方法
  • Linux 下监控某进程 内存使用峰值的方法?
  • 使用jquery prev()方法找到同级的前一个元素
  • byte() 方法如何使用?
  • :)```一个初级问题抽象类的方法我怎么使用?!!
  • 请教makefile的使用方法。
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 使用了QWidget的程序,如何使用后台程序启动它?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3