【编译环境】:Visual Studio 2013

这是服务端实现流程。

#include<stdio.h>
#include<stdlib.h>
#include<winsock2.h> #pragma comment(lib, "ws2_32.lib") const int BACK_LOG = 5; int main(int argc, char * argv[])
{
//初始化套接字
WSADATA wsaData;
int ret = WSAStartup(MAKEWORD(2, 4), &wsaData);
if (0 != ret){
fputs("WSAStartup error\n", stderr);
return 1;
} //创建套接字
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (INVALID_SOCKET == sock) {
fputs("socket() error\n", stderr);
WSACleanup();
return 1;
} //绑定套接字
SOCKADDR_IN sockAddr;
memset(&sockAddr,0,sizeof(SOCKADDR_IN));
sockAddr.sin_family = AF_INET;//协议簇,一般用AF_INET表示TCP/IP协议
sockAddr.sin_addr.S_un.S_addr = htonl(ADDR_ANY);//表示IP地址
sockAddr.sin_port = htons(7);//表示端口 ret = bind(sock, (SOCKADDR*)&sockAddr, sizeof(sockAddr));
if (SOCKET_ERROR == ret) {
fputs("bind() error\n", stderr);
closesocket(sock);
WSACleanup();
return 1;
} //侦听套接字
ret = listen(sock, BACK_LOG);
if (SOCKET_ERROR == ret) {
fputs("listen() error\n", stderr);
closesocket(sock);
WSACleanup();
return 1;
} //接收套接字
SOCKADDR_IN clientAddr;
int szClientAddr = sizeof(clientAddr); SOCKET clientSock = accept(sock, (SOCKADDR*)&clientAddr, &szClientAddr); if (INVALID_SOCKET == clientSock){
fputs("accept() error\n", stderr);
closesocket(sock);
WSACleanup();
return 1;
} //收发数据
TCHAR buff[256];
memset(&buff,0,sizeof(buff)); recv(sock,buff,sizeof(buff),0);//recv()返回读入的字节数 TCHAR buff2[] = "QUIT\n";
send(sock, buff2, sizeof(buff2), 0);//成功则返回实际传送出去的字符数 //回收资源
closesocket(sock);
closesocket(clientSock);
WSACleanup(); return 0; }

版权声明:本文博主原创文章,博客,未经同意不得转载。

【Socket规划】套接字Windows台C语言的更多相关文章

  1. iOS - Socket 网络套接字

    1.Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个 Socket.Socket 又称 "套接字",应用程序通常通过 "套接字& ...

  2. Win2 Socket(套接字)相关 API

    Socket(套接字) 作者信息 肖进 单位:南京中萃食品有限公司 资讯部 邮箱:xiaoj@njb.swirebev.com 电话:025-58642091 与socket有关的一些函数介绍 1.读 ...

  3. python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)

    先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的 ...

  4. socket概念 套接字

    理解socket soxket因为TCP是面向流的,你发的信息如果很多很快,TCP这样就会形成黏包 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socke ...

  5. Socket称"套接字"

    Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 二.利用Socket建立网络连接的步骤 建立Socket连接至少需要一对 ...

  6. sanic官方文档解析之Custom Protocols(自定义协议)和Socket(网络套接字)

    1,Custom Protocol:自定义协议 温馨提示:自定义协议是一个高级用法,大多数的读者不需要用到此功能 通过特殊的自定义协议,你可以改变sanic的协议,自定义协议需要继承子类asyncio ...

  7. 网络编程(socket,套接字)

    服务端地址不变 ip + mac 标识唯一一台机器 ip +端口 标识唯一客户端应用程序 套接字: 网络编程   网络编程 一.python提供了两个级别访问的网络服务 低级别的网络服务支持基本的 S ...

  8. Linux Socket 原始套接字编程

    对于linux网络编程来说,可以简单的分为标准套接字编程和原始套接字编程,标准套接字主要就是应用层数据的传输,原始套接字则是可以获得不止是应用层的其他层不同协议的数据.与标准套接字相区别的主要是要开发 ...

  9. Python之socket(套接字)

    Socket 一.概述 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...

随机推荐

  1. 基于lua的网页脚本开发语言cgilua(转)

    这里为大家介绍基于lua脚本实现的网页开发语言,cgilua 介绍 cgilua使用Lua是一个用于创建动态网页的服务器端脚本语言.纯LUA脚本和LUA页(LP)的支持,cgilua.Lua脚本是一个 ...

  2. android 他们定义对话框

    创建一个布局文件 my_dialog.xml <?xml version="1.0" encoding="utf-8"?> <Relative ...

  3. HR筒子说:程序猿面试那点事(转)

    小屁孩曾经有过4年的招聘经验,期间见识了各种类型的程序猿:有大牛.有菜牛:有功成名就,有苦苦挣扎不知方向.等后来做了一枚程序猿之后发现,HR眼中的程序猿和程序猿中的HR都是不一样的.有感与此,从HR的 ...

  4. net搭建热插拔式web框架

    net搭建热插拔式web框架(重造Controller) 由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并 ...

  5. 妈蛋:kinMaxShow旋转木马异常,WebUploader图片上传坑爹,图像被压缩

    今天晚上在改造轮播图. 原来的代码是这种: <div> <img src="${static}/image/index/banner/`.jpg" /> & ...

  6. 《Pro Android Graphics》读第三季度票据

    Android Frame Animation: XML, Concepts and Optimization Frame Animation Concepts: Cels, Framerate, a ...

  7. 创建内向交货单 BBP_INB_DELIVERY_CREATE

    DATA:DEL_HEADER TYPE BBP_INBD_L. DATA:DEL_TAB TYPE TABLE OF BBP_INBD_D WITH HEADER LINE. DATA:DEL_RE ...

  8. JMS分布式应用程序异步消息解决方案EhCache 高速缓存同步问题

    部分博客中描述的使用拦截器怎么用EJB公布的WebService加入缓存,这样能够提高WebService的响应效率.但是即使是这样做,还是要经历网络的传输的.于是决定在调用WebService的程序 ...

  9. jstack:将Process Explorer中看到的进程ID做16进制转换,到ThreadDump中加上0x 前缀即能找到对应线程(转)

    原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jd ...

  10. UVA 239 - Tempus et mobilius. Time and motion(更换周期)

    UVA 239 - Tempus et mobilius. Time and motion 题目链接 题意:这题题意也是吊得飞起,看了老半天,大概是这样: 有一个放球的队列.和3个轨道(说白了就是栈) ...