前言 这里说的服务器是Web服务器,是类似IIS.Tomcat之类的,用来响应浏览器请求的服务. Socket模拟浏览器的Url Get请求 首先浏览器的请求是HTTP协议.我们上一篇说过,HTTP是短连接,用完就断开,是无状态的.所以我们在等待响应的时候不需要另外开个线程循环等待. 也就是我们只需要通过Socket和服务器建立连接,然后发送请求,然后接收服务器的响应,这样就完成了一次请求. 可是,我们一般访问网页的时候都是通过域名,没有IP也没有端口,怎么和服务器建立连接了.这里就需要用到我们…
简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单的聊天程序. 一些基础类 首先我们每天打开浏览器访问网页信息都是使用的HTTP/HTTPS协议,而HTTP是通过的TCP建立的连接.TCP底层又是通过的Socket套接字进行的通信.所以他们之间的抽象关系是: 我们在学习Socket编程的时候可能会需要用到IPEndPoint.Dns.IPAddress等类,再往上TCP相关有TcpListener.Tcp…
原文:你也可以写个聊天程序 - C# Socket学习1 简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单的聊天程序. 一些基础类 首先我们每天打开浏览器访问网页信息都是使用的HTTP/HTTPS协议,而HTTP是通过的TCP建立的连接.TCP底层又是通过的Socket套接字进行的通信.所以他们之间的抽象关系是: 我们在学习Socket编程的时候可能会需要用到IPEndPoint.Dns.IPAddre…
这是系列的第二篇 这是这个系列文章的第二篇,要是没有看第一篇的还是建议看看第一篇,以为这个是接着第一篇梳理的 先大概的总结一下在上篇的文章中说的些内容: 1. 整理了一下做IM我们有那些途径,以及我们怎样选择最适合自己的 2.在做IM的时候协议你又该怎样选择,以及这些协议之间一些的对比等等 3.接下来梳理了一下Socket的我们该怎样理解,它的心跳,pingpong,重连机制等等 4.利用demo整理出来了原生Socket的简单的连接以及接收/发送消息. 这篇我们梳理那些 1. 对CocoaAs…
效果图: 使用方法:  先 修改WinClient\bin\Debug  下面的 ip.ini,写上 服务器 IP地址. 客户端 与 客户端 通讯 之前 ,点击发送打洞消息 按钮,然后过一会再发送消息. 代码 很多, 参见: http://www.cnblogs.com/LeoWong/archive/2009/09/25/1574266.html 已经放在  MVC EF Bootstrap技术交流   206058845    里面的文件里面了.感兴趣的可以去下载.文件名 Socket穿透.…
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不能理解Web短连接(就是最常见的HTTP通信了)跟长连接(主要指TCP.UDP协议实现的socket通信,当然HTML5里的Websocket协议也是长连接)的区别,导致写即时通讯这类系统代码时往往找不到最佳实践,搞的一脸蒙逼. 本篇我们先简单了解一下 TCP/IP,然后通过实现一个 echo 服务…
原文地址:JavaSE 手写 Web 服务器(二) 博客地址:http://www.extlight.com 一.背景 在上一篇文章 <JavaSE 手写 Web 服务器(一)> 中介绍了编写 web 服务器的初始模型,封装请求与响应和多线程处理的内容.但是,还是遗留一个问题:如何根据不同的请求 url 去触发不同的业务逻辑. 这个问题将在本篇解决. 二.涉及知识 XML:将配置信息写到 XML 文件,解决硬编码问题. 反射:读取 XML 文件配置并实例化对象. 三.封装控制器 目前手写的 w…
TCP协议的Socket编程 Socket:英文中的意思是插座.两个Java应用程序可以通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket.Java中所有关于网络编程的类都位于java.net包. Socket用法详解 TCP编程需要使用的两个类:Socket类与ServerSocket类,分别用来实现双向连接的Client端和Server端. 说明:这里仅指TCP连接.因为UDP中没有Client和Server的概念.UDP只负责发送,不管是否发生成功. 建立连接时…
WinSock TCP 编程流程 TCP通信,就像是固定电话,首先是要安装基站,然后是将电话号绑定到电话,然后拨号,接通之后说事,完事之后还要挂电话(甭管谁先挂). 1.初始化环境 使用函数 int WSAstartup(WORD Version,LPWSAData dtPtr); 参数 Version 为套接字版本,dtPtr 为一个WSAData 结构的 指针,表示获取到的 套接字的详细信息. typedef srcut WSAData{ WORD Version ; //当前版本 WORD…
原文地址:JavaSE 手写 Web 服务器(一) 博客地址:http://www.extlight.com 一.背景 某日,在 Java 技术群中看到网友讨论 tomcat 容器相关内容,然后想到自己能不能实现一个简单的 web 容器.于是翻阅资料和思考,最终通过 JavaSE 原生 API 编写出一个简单 web 容器(模拟 tomcat).在此只想分享编写简单 web 容器时的思路和技巧. 二.涉及知识 Socket 编程:服务端通过监听端口,提供客户端连接进行通信. Http 协议:分析…