下面的示例显示如何使用 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.1/r/nHost: " + server +
"/r/nConnection: Close/r/n/r/n";
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 + ":/r/n";
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#开发Socket通讯相关推荐

  1. Protobuf实现Android Socket通讯开发教程

    本节为您介绍Protobuf实现Android Socket通讯开发教程,因此,我们需要先了理一下protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式 ...

  2. Socket网络通讯开发总结之:Java 与 C进行Socket通讯

    先交待一下业务应用背景: 服务端:移动交费系统:基于C语言的Unix系统 客户端:增值服务系统:基于Java的软件系统 通迅协议:采用TCP/IP协议,使用TCP以异步方式接入 数据传输:基于Sock ...

  3. java c 网络_Socket网络通讯开发总结之:Java 与 C进行Socket通讯(转)

    先交待一下业务应用背景: 服务端:移动交费系统:基于C语言的Unix系统 客户端:增值服务系统:基于Java的软件系统 通迅协议:采用TCP/IP协议,使用TCP以异步方式接入 数据传输:基于Sock ...

  4. Java与C++Socket通讯注意

    2019独角兽企业重金招聘Python工程师标准>>> c++与java进行socket通信时注意事项 因为java发送的都是网络字节序(big-endium),而c++是主机字节序 ...

  5. java与 C++ 之间进行 SOCKET 通讯要点简要解析

    Endian定义: 在计算机系统体系结构中用来描述在多字节数中各个字节的存储顺序. big-endian也称高位在前.大端在前.是 计算机体系结构中一种描述多字节存储顺序的术语,在这种机制中最重要字节 ...

  6. 试解析Tomcat运行原理(一)--- socket通讯(转)

    关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...

  7. socket java 服务器端_Java 简单的Socket通讯的服务器端实现

    最近学安卓开发,看到书上这个Socket通讯的实例,按照书上打的时候客户端一直连接不上,可能是网络问题或者虚拟机连接问题,所以就用控制台实现的客户端,这里是服务器端的.话不多说,直接贴代码 impor ...

  8. 试解析Tomcat运行原理(一)--- socket通讯

    关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...

  9. Spring boot + netty开发即时通讯 IM

    Spring boot + netty开发即时通讯 IM 目的 github地址 项目目录结构 主要核心类介绍 目的 学习以及开源思想,写一个可使用的IM通信程序 github地址 链接: https ...

最新文章

  1. linux内核模块签名,如何签名内核模块Ubuntu 18.04
  2. jsonp请求url长度过长的替代(ajaxcdr的使用)
  3. php管道邮件,php进程通信-PIPE管道通信
  4. 深度学习到底有多难?这篇文章带你入门!
  5. linux c 之使用-O来优化gcc
  6. 使用 jQuery Mobile 与 HTML5 开发 Web App (九) —— jQuery Mobile 页面与对话框
  7. 工作两年多的一个菜鸟感想
  8. 桥接设计模式(Bridge)
  9. pcm转换在线工具_律师必备的PDF在线转换工具,推荐5款,全免费!
  10. 虚拟化技术天书:九宫格图解虚拟化——此文多风险,阅读需谨慎
  11. 小程序开发,不现实用户的头像!
  12. gstreamer插件用不了,及黑名单Blacklist的解决办法
  13. fw150us的linux驱动下载,FAST FW150US2.0无线网卡驱动
  14. C++之责任链(Chain of Responsibility)模式
  15. 【解决方法】Windows7 任务计划程序 “任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”
  16. cubieboard2 android,cubieboard2双卡版系统安装指南_android.pdf
  17. excel保存快捷键_知心小虎| Excel 中常用的快捷键(第十一期)
  18. java 解码和加密 汉信码_java中的编码与解码
  19. 特征码的使用办法_如何查询使用车架号查询车辆是否是事故
  20. 微信跳一跳辅助之JAVA版(最容易理解的算法)实现原理分析

热门文章

  1. python包 wget_Python数据科学“冷门”库
  2. linux按文件名排序ls,linux – 如何使用shell脚本按名称对文件进行排序
  3. php父类的静态变量,抽象父类中的PHP静态变量:问题是在示例代码中!
  4. java servlet 路径_JavaServlet 路径书写总结
  5. Java多线程,Thread,Runnable,Callable Task,Future<Task>,CompletionService
  6. Keil5简介、下载及安装(NB-IoT专栏—基础篇2)
  7. 深度学习--TensorFlow(3)线性神经网络(线性输入非线性输入)(实现)
  8. 一行代码解决对象数组排序(sort)
  9. 在rMBP上利用Python的onetimepass库实现Google Authenticator Application的效果
  10. CentOS 6.6 x86_64升级内核到最新版2.6.32-642.3.1.el6.x86_64