【Socket编程】套接字Windows平台C语言实现
来源:互联网 发布:剑灵火炮兰数据 编辑:程序博客网 时间:2024/05/22 13:43
【编译环境】: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;}
0 0
- 【Socket编程】套接字Windows平台C语言实现
- Windows套接字编程/Socket
- c 语言套接字编程
- Windows Socket网络编程--异步套接字
- Windows Socket 套接字编程原理(转载)
- Windows Socket 套接字编程原理(转载)
- Windows Socket 套接字编程原理(转载)
- Windows Socket 网络编程--异步套接字
- Windows 下的socket(套接字编程)
- 初识windows编程之socket套接字
- windows编程之socket套接字2
- Windows Socket 套接字编程原理
- Windows 下的socket(套接字编程)
- Windows Socket套接字(三)-MFC套接字编程
- 【网络编程6】Java与C语言套接字Socket通信的例子
- Socket套接字编程
- socket套接字编程
- socket 套接字编程
- ZOJ 3819 Average Score (2014牡丹江区域赛)
- C++判断字符串是否为数字
- OpenMP并行程序设计——Eclipse开发环境的搭建
- Linux系统分析工具之nicstat,dstat(四)
- 追求与混日子
- 【Socket编程】套接字Windows平台C语言实现
- Java NIO系列教程(九) ServerSocketChannel
- 第七周项目三(3)求周工资
- 作业
- CGI,FastCGI的区别
- Github安卓开源项目编译运行
- 当你可以跟一个人不说话,分享片刻寂静,且不会觉得尴尬,那一刻你就会明白,你遇到了对的人。
- linux系统分析工具之sar(五)
- Java NIO系列教程(十) Java NIO DatagramChannel