分类: socket编程 |

端口重用

当某个端口已经被一个程序占用了,我们如果想直接绑定我们的socket到这个端口是不行的。一般的做法是选用一个备用的端口,或者是等那个程序退出。其实我们还有另一种做法,叫做端口重用。这种技术,其实有点走邪派路线了。换句话说,正规程序一般不用这种技术。因为这种重用势必会影响到原来的程序。但是你如果不在意原来的程序,或者你的本意就是要影响原来的程序,那就去做吧~

查看更多...

Tags: socket 端口重用

分类:socket编程 | 固定链接 | 评论: 0 | 查看次数: 9880

socket中select的使用

 原型:int select(nfds, readfds, writefds, exceptfds, timeout)  

参数含义:

  1. ndfs:select监视的文件句柄数。据msdn上说的,这个参数应该是没什么关系一般要设为最大的socket+1
  2. readfds:获取可读的socket
  3. writefds:获取可写的socket
  4. exceptfds: 一场的socket
  5.  timeout:等待的时间
  6. 返回值:select()调用返回处于就绪状态并且已经包含在fd_set结构中的描述字总数;如果超时则返回0;否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。

注释:
   本函数用于确定一个或多个套接口的状态。对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息。用fd_set结构来表示一组等待检查的套接口。在调用返回时,这个结构存有满足一定条件的套接口组的子集,并且select()返回满足条件的套接口的数目。有一组宏可用于对fd_set的操作,这些宏与Berkeley Unix软件中的兼容,但内部的表达是完全不同的。
 

相关宏:

查看更多...

Tags: socket select

分类:socket编程 | 固定链接 | 评论: 0 | 查看次数: 7381

socket之connect

函数原型:

int connect (int sockfd,struct sockaddr * serv_addr,int addrlen); 

头文件:

linux下

查看更多...

Tags: socket connect

分类:socket编程 | 固定链接 | 评论: 0 | 查看次数: 6784

socket编程

说起socket编程,其实真是一件有趣的事呢。刚入门的时候什么都不懂,对于socket编程竟然故意不想学。记得我刚开始学编程的时候就想编写一个厉害的病毒,在全世界传播。当然我知道这是违法的,但这在曾经是促使我在编程这条路上越走越远的一个原因。其实说到底,以前自己写着完写出来的东西,我现在想想都觉得好笑。呵呵话题又扯远了。记得我第一次结束socket套接字的时候是用的vb里面的那个winsock控件,现在很久不用vb了很多东西都要忘记了。我试着用这个vb的socket控件写了一个服务端和客户端聊天的程序,在本机是测试成功了,但发给别人不能用。所以很长的一段时间都对这个socket编程有点怕怕。这种情况一直持续着直到我接触了c语言中的socket编程才得到了改变。我发现socket编程真的是蛮有意思的一件事。

查看更多...

Tags: socket编程

分类:socket编程 | 固定链接 | 评论: 0 | 查看次数: 10314

mylcx 穿墙版

写的很匆忙很乱,可能有些地方会有问题。

说一下用法吧

-slave 和-listen 两个参数同lcx就不多说了,或者参考我的另一偏文章

http://www.zeroplace.cn/article.asp?id=441

查看更多...

分类:socket编程 | 固定链接 | 评论: 0 | 查看次数: 10295

多种语言socket编程集锦—win32

借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多语言、多平台下的实现有必要了解的。代码都是源自网上,感谢网友的分享。

socket编程在windows下的C语言实现,dev C++下编译通过
编译时设置编译选项 工具-->编译选项-->编译器,勾选在连接器命令行加入以下命令,在对话框中填-lwsock32
//server.c

查看更多...

分类:socket编程 | 固定链接 | 评论: 0 | 查看次数: 7450

用socket发送http请求

你可能对 [u][url=http://jser.zeroplace.cn/?p=36]Nodejs如果发起一个HTTP[/url][/u] 感兴趣

平常我们要访问某个URL一般都是通过浏览器进行:提交一个URL请求后,浏览器将请求发向目标服务器或者代理服务器,目标服务器或者代理服务器返回我们所需要的数据,浏览器接收到这些数据后保存成文件并进行显示。
下面我们看看如何自己利用winsock2.h中的接口来实现这个功能?为了简化问题,作以下假设:
通过代理服务器进行HTTP访问,这样就省去了对URL进行DNS解析的步骤,假设代理服务器的地址为:192.168.0.1:808。

查看更多...

Tags: http socket http请求

分类:socket编程 | 固定链接 | 评论: 0 | 查看次数: 17623