Linux Socket编程(不限Linux)

“一切皆Socket!”

话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。

——有感于实际编程和开源项目研究。

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web 服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型 有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:

  • 1、网络中进程之间如何通信?
  • 2、Socket是什么?
  • 3、socket的基本操作
    • 3.1、socket()函数
    • 3.2、bind()函数
    • 3.3、listen()、connect()函数
    • 3.4、accept()函数
    • 3.5、read()、write()函数等
    • 3.6、close()函数
  • 4、socket中TCP的三次握手建立连接详解
  • 5、socket中TCP的四次握手释放连接详解
  • 6、一个例子(实践一下)
  • 7、留下一个问题,欢迎大家回帖回答!!!

阅读更多

使用telnet理解http

今天上计算机网络课,老师给讲解http协议。在最后演示的时候,使用telnet连接http服务的端口,并敲入http请求,看到了http服务返回的信息。不得不说这么一弄确实让我对http的理解又深了一层,对http基于tcp有了深刻的认识。捎带着对telnet的认识也清晰了,它就是在一个tcp连接下透明传输字节流的工具。上课时老师只写了Request line,没写其他的http头,服务器一直返回4xx,5xx错误,我回到宿舍亲自试了一遍,终于找到了原因,必须附加HOST头,不然无法请求成功。下面就贴出使用telnet发送的手写http请求(本地127.0.0.1的apache http服务)和服务器返回的信息:

阅读更多

全图形界面配置Windows无线共享工具——无线共享助手

一句话介绍:这是一个只需轻点几下鼠标就能把笔记本变身无线路由的神器。

自己写了个Windows下的配置无线共享的工具,可以完美替代netsh hostednetwork那一套命令和在适配器上右键单击选择网卡设置ICS共享。软件需要.netFramework 2.0支持。估计能有无线网卡的电脑都会装了。

阅读更多

解决使用curl设置好COOKIEJAR文件时cookie无法保存的问题

今天使用curl来进行模拟登陆,在进行关于cookie的操作时,设置好了cookie

却发现无论如何都无法保存服务器返回的cookie

阅读更多

jQuery的getJSON方法post数据时自动添加的下划线字段

这两天在研究模拟登陆网盘。其中遇到一个问题,需要模拟发送一个POST,但是检测HTTP数据通信发现在发送时,经过POST发送的字段总是比form内的字段多一个下划线字段。一开始百思不得其解,后来经过仔细观察,发现这个字段的数值是一个数值,隐约感觉非常像json的时间字段,精确到毫秒的ticks。经过转换发现确实是标示发送时间的字段。

下划线字段的含义解决了,那它究竟是谁添加的呢?

在阅读发送这段内容的源代码后发现,这段代码是由jQuery的getJSON方法发送的,而且在发送前,已经使用ajaxSetup方法配置成异步、不缓存。阅读了jQuery的Refference后,发现默认就是异步,但是缓存为true。所以料想添加的下划线字段应该是用精确到毫秒的时间字段来将url标识为独一无二的请求,从而强制服务器发送最新的数据。

至此下划线问题完美解决:它是jQuery的ajax方法在设置为不缓存时自动添加的时间字段。

双十一之夜

在k94上,人虽然多但是还有站着的地方。刚才等车的过程堪称曲折。。。一连过了6辆满满的41和两辆k55,在等待25分钟后终于等到了这一辆k94

阅读更多

大神还差好远

昨天又把Up Up惹毛了。非常严重。
大神要做的还有好多好多。一点都不能省。
不急眼不行了。
大变身。加油。