`

[置顶] c在Windows下的socket编程

阅读更多

  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一样好用。


分享到:
评论

相关推荐

    Windows窗体置顶 C#/wpf编程

    在项目开发中,希望窗体一直处于置顶状态,使用该Demo可方便实现这个功能。

    Windows窗口置顶小工具

    Windows窗口置顶小工具,简洁好用。

    协助窗口置顶_Windows编程_C++_

    该程序可以以设定的时间(毫秒)循环置顶选中的窗体。同时,使用了改变局部文字、背景颜色,实现伪GUI。该程序用途广泛,可用于:把指定窗体永远置顶于电子教室之上、把办公时重要窗口置顶、以及用于代码学习。

    windows窗口置顶工具.zip

    内部有三个窗口置顶的工具软件,各有特点,都小巧免安装。

    c语言自编置顶/结束进程程序(含c语言代码)

    置顶/或结束操作是通过cmd方式来的. 结束进程操作有点类似win下的taskkill 置顶功能只有置顶或取消二种方式. 公布代码.

    Labivew调用Windows API函数实现VI窗口置顶

    LabVIEW调用WindowsAPI函数实现VI窗口置顶,步骤清晰,内容详细,你值得拥有

    TopWindows应用程序窗口一键置顶工具V1.0.47.6官方免费版

    Top_Windows应用程序窗口一键置顶工具是一款使用AutoHotKey开发的窗口置顶工具,使用可以把任意一个窗口设置为顶层窗口,使其不会被其它非置顶的窗口遮盖。永远保持在最上方,支持使用快捷键,可取消置顶,使用简单、...

    windows 10 文件管理器隐藏置顶的7个文件夹

    隐藏或显示windows 10 文件管理器置顶的7个文件:桌面、文档、视频、图片、下载、音乐、3D对象。可以选择全部隐藏或部分隐藏,还可以随时恢复。

    winontop Windows窗口置顶工具

    windows系统中的窗口置顶程序,快捷键为Ctrl+F8,非常方便

    window-on-top(windows任意窗口置顶)

    window-on-top(windows任意窗口置顶)窗口置顶 绿色小工具

    Windows窗口置顶工具.rar

    鼠标光标移到目标窗口上按下置顶热键(如F1)即可自动置顶,若要取消置顶,鼠标光标移到目标窗口上按下取消热键(如F2)即可取消置顶。 使用方法:运行程序后自动锁定置顶F1,取消置顶F2,若要修改热键,重新选择...

    windows窗口置顶工具

    windows窗口置顶工具,可以吧想要一直显示到前置的应用置顶。

    Windows系统下程序窗口置顶显示工具

    无论是开发敲代码还是系统调整设置,有时需要某些程序的窗口在最前面显示方便对照内容,可以用本工具进行窗口置顶。 支持Win10系统的程序窗口菜单增强工具,可以让窗口置顶,设置程序窗口的透明度,设置进程优先级...

    截图置顶工具,办公利器

    利用win10只带截图工具,win+shift+s截图后自动置顶显示在桌面右上角,方便办公

    python窗口置顶

    python3.6.2写的窗口置顶程序,windows10下测试可用,用到tkinter,pypiwin32

    windows top tool 免费的窗口置顶程序

    对一个窗口进行置顶操作可以有两种方式,第一种方式,采用热键置顶,该热键默认为F8,用户可以根据自己的习惯更改热键,采用热键置顶时,激活想置顶的窗口,然后按下热键,即可把该窗口置顶,再次按下热键取消该窗口...

    桌面可以一直置顶的小时钟

    这是一个始终保持在最前端、一直置顶的小时钟,可以高于播放器的置顶权限哦~

    Windows窗口置顶软件2款.zip

    不论在开发过程中,还是生活娱乐过程中,总是需要将一些软件置在顶层,方便察看,这里有两款个人使用较好的置顶小软件分享给大家

    Windows - 任意窗体置顶

    一个能将 Windows 桌面中任意一个窗体(如 “记事本”、“Sticky Notes” 等等)置顶的小工具,适用于经常操作多个应用程序窗体的程序员或工程师!

Global site tag (gtag.js) - Google Analytics