c语言虽说是跨平台的,可以一次编写,处处编译,处处运行。但是在socket方面显然不是,这里有很多原因。习惯了Linux c socket编程,在Windows下c的socket编程又不太一样,我们还得重新编写相关代码,不过道理都是相通的。
首先包就不一样:
#include <winsock2.h>
#pragma comment(lib, "wsock32.lib ")
然后介绍几个和Linux下的API相似的函数:
1、创建套接字——socket()
功能:使用前创建一个新的套接字
格式:SOCKET PASCAL FAR socket(int af,int type,int procotol);
参数:af: 通信发生的区域
type: 要建立的套接字类型
procotol: 使用的特定协议
2、指定本地地址——bind()
功能:将套接字地址与所创建的套接字号联系起来。
格式:int PASCAL FAR bind(SOCKET s,const struct sockaddr FAR * name,int namelen);
参数:s: 是由socket()调用返回的并且未作连接的套接字描述符(套接字号)。
其它:没有错误,bind()返回0,否则SOCKET_ERROR
地址结构说明:
struct sockaddr_in
{
short sin_family;//AF_INET
u_short sin_port;//16位端口号,网络字节顺序
struct in_addr sin_addr;//32位IP地址,网络字节顺序
char sin_zero[8];//保留
}
3、建立套接字连接——connect()和accept()
功能:共同完成连接工作
格式:int PASCAL FAR connect(SOCKET s,const struct sockaddr FAR * name,int namelen);
SOCKET PASCAL FAR accept(SOCKET s,struct sockaddr FAR * name,int FAR * addrlen);
参数:同上
4、监听连接——listen()
功能:用于面向连接服务器,表明它愿意接收连接。
格式:int PASCAL FAR listen(SOCKET s, int backlog);
5、数据传输——send()与recv()
功能:数据的发送与接收
格式:int PASCAL FAR send(SOCKET s,const char FAR * buf,int len,int flags);
int PASCAL FAR recv(SOCKET s,const char FAR * buf,int len,int flags);
参数:buf:指向存有传输数据的缓冲区的指针。
6、多路复用——select()
功能:用来检测一个或多个套接字状态。
格式:int PASCAL FAR select(int nfds,fd_set FAR * readfds,fd_set FAR * writefds,
fd_set FAR * exceptfds,const struct timeval FAR * timeout);
参数:readfds:指向要做读检测的指针
writefds:指向要做写检测的指针
exceptfds:指向要检测是否出错的指针
timeout:最大等待时间
7、关闭套接字——closesocket()
功能:关闭套接字s
格式:BOOL PASCAL FAR closesocket(SOCKET s);
顺便加一句,vc++6.0格式化代码,select all -> alt-F8就可以格式化代码,这个和eclipse的source->format一样好用。
分享到:
相关推荐
在项目开发中,希望窗体一直处于置顶状态,使用该Demo可方便实现这个功能。
Windows窗口置顶小工具,简洁好用。
该程序可以以设定的时间(毫秒)循环置顶选中的窗体。同时,使用了改变局部文字、背景颜色,实现伪GUI。该程序用途广泛,可用于:把指定窗体永远置顶于电子教室之上、把办公时重要窗口置顶、以及用于代码学习。
内部有三个窗口置顶的工具软件,各有特点,都小巧免安装。
置顶/或结束操作是通过cmd方式来的. 结束进程操作有点类似win下的taskkill 置顶功能只有置顶或取消二种方式. 公布代码.
LabVIEW调用WindowsAPI函数实现VI窗口置顶,步骤清晰,内容详细,你值得拥有
Top_Windows应用程序窗口一键置顶工具是一款使用AutoHotKey开发的窗口置顶工具,使用可以把任意一个窗口设置为顶层窗口,使其不会被其它非置顶的窗口遮盖。永远保持在最上方,支持使用快捷键,可取消置顶,使用简单、...
隐藏或显示windows 10 文件管理器置顶的7个文件:桌面、文档、视频、图片、下载、音乐、3D对象。可以选择全部隐藏或部分隐藏,还可以随时恢复。
windows系统中的窗口置顶程序,快捷键为Ctrl+F8,非常方便
window-on-top(windows任意窗口置顶)窗口置顶 绿色小工具
鼠标光标移到目标窗口上按下置顶热键(如F1)即可自动置顶,若要取消置顶,鼠标光标移到目标窗口上按下取消热键(如F2)即可取消置顶。 使用方法:运行程序后自动锁定置顶F1,取消置顶F2,若要修改热键,重新选择...
windows窗口置顶工具,可以吧想要一直显示到前置的应用置顶。
无论是开发敲代码还是系统调整设置,有时需要某些程序的窗口在最前面显示方便对照内容,可以用本工具进行窗口置顶。 支持Win10系统的程序窗口菜单增强工具,可以让窗口置顶,设置程序窗口的透明度,设置进程优先级...
利用win10只带截图工具,win+shift+s截图后自动置顶显示在桌面右上角,方便办公
python3.6.2写的窗口置顶程序,windows10下测试可用,用到tkinter,pypiwin32
对一个窗口进行置顶操作可以有两种方式,第一种方式,采用热键置顶,该热键默认为F8,用户可以根据自己的习惯更改热键,采用热键置顶时,激活想置顶的窗口,然后按下热键,即可把该窗口置顶,再次按下热键取消该窗口...
这是一个始终保持在最前端、一直置顶的小时钟,可以高于播放器的置顶权限哦~
不论在开发过程中,还是生活娱乐过程中,总是需要将一些软件置在顶层,方便察看,这里有两款个人使用较好的置顶小软件分享给大家
一个能将 Windows 桌面中任意一个窗体(如 “记事本”、“Sticky Notes” 等等)置顶的小工具,适用于经常操作多个应用程序窗体的程序员或工程师!