#include "stdafx.h"
#include "WINSOCK2.H" #pragma comment(lib,"WS2_32.lib")
#define BUF_SIZE 64 //缓冲区大小
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsd;//存储WSAStartup返回的数据windows socket数据。
SOCKET server; //服务器套接字
SOCKET client; //客户端套接字
int retVal;
char buf[BUF_SIZE]; //初始化动态库套接字
//WSAStartup Winsock初始化
ZeroMemory(buf, BUF_SIZE);
if (WSAStartup(MAKEWORD(, ), &wsd) != )
{
printf("WSAStartup failed 1/n");
return ;
} //创建套接字
//AF_INET IPV4套接字类型
//AF_INET6 IPV6套接字类型
//AF_UNIX Unix套接字类型
//SOCK_STREAM TCP协议
//SOCK_DGRAM UDP协议
//SOCK_RAW 特殊的IPV4,可以处理ICMP、IGMP等网络报文
//INVALID_SOCKET socket创建失败
server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (INVALID_SOCKET == server)
{
printf("socket failed !/n");
WSACleanup();
return -;
} //服务器套接地址
//sin_family 协议簇
//sin_addr 地址
//htonl()--"Host to Network Long"
//ntohl()--"Network to Host Long"
//htons()--"Host to Network Short"
//ntohs()--"Network to Host Short"
//INADDR_ANY inet_addr("0.0.0.0")监听所有网络
//SOCKADDR_IN SOCKADDR 网络地址
SOCKADDR_IN addserver;
addserver.sin_family = AF_INET;
addserver.sin_port = htons();
addserver.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //绑定套接字
retVal = bind(server, (const struct sockaddr*)&addserver, sizeof(SOCKADDR_IN));
if (SOCKET_ERROR == retVal)
{
printf("bind failed !/n");
closesocket(server);
WSACleanup();
return false;
} //监听套接字
retVal = listen(server, );
if (SOCKET_ERROR == retVal)
{
printf("listen failed!/n");
closesocket(server);
WSACleanup();
return false;
} //接受客户端数据
//accept 建立链接 返回一个SOCKET类型的值,表示接收到的套接字的描述符,否则返回INVALID_SOCKET _In_ SOCKET s,
sockaddr_in addrClient;
int addrClintlen = sizeof(addrClient);
client = accept(server, (sockaddr FAR*)&addrClient, &addrClintlen);
{
printf("accept failed !/n");
closesocket(server);
WSACleanup();
return -;
} //接收客户端套接字
retVal = recv(client, buf, BUF_SIZE, );
if (SOCKET_ERROR == retVal)
{
printf("recv failed !/n");
closesocket(server);
closesocket(client);
WSACleanup();
return false;
} //退出程序
printf("Recv From Client:%s/n", buf);
retVal = send(client, "Hello Word!", strlen("Hello word!"), );
if (SOCKET_ERROR == retVal)
{
printf("send failed !/n");
closesocket(server);
closesocket(client);
WSACleanup();
return false;
}
closesocket(server);
closesocket(client);
WSACleanup();
return ;
}

socket 笔记(一)的更多相关文章

  1. iOS socket 笔记

    ios 客服端: 下载 AsyncSocket 开发框架,拖到项目中 //建立 #import "ViewController.h" #import <sys/socket. ...

  2. socket笔记

    参考: http://www.cnblogs.com/dolphinX/p/3460545.html http://www.cnblogs.com/wei2yi/archive/2011/03/23/ ...

  3. linux c socket笔记 -服务端

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types. ...

  4. C# Socket笔记

    看到这个题目,是不是很眼熟?在博客园里搜下,保证会发现关于这个东东的文章实在是太多了~~~真得是没有写得必要,而且我也有点懒得去琢磨字句.(看到这,肯定得来个转折的了,不然就看不到下文了,不是吗)但是 ...

  5. 操作socket笔记

    网络编程 1.tcp协议 #tcpserver #单纯一对一发 tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建tcp套接字 参 ...

  6. TCP IP SOCKET 笔记

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...

  7. tcp/ip http socket笔记

    1.TCP/IP协议是传输层协议,主要解决数据如何在网络中传输 HTTP是应用层协议,主要解决如何包装数据 2.TCP连接的三次握手 第一次握手:客户端发送syn包到服务器,并进入SYN_SEND状态 ...

  8. C# Socket编程笔记(转)

    C# Socket编程笔记 http://www.cnblogs.com/stg609/archive/2008/11/15/1333889.html TCP Socket:Server 端连接步骤: ...

  9. Android Socket编程学习笔记

    http://blog.csdn.net/eyu8874521/article/details/8847173 度娘给出的描述:通常也称作"套接字",用于描述IP地址和端口,是一个 ...

随机推荐

  1. 35.QQ大数据模型

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...

  2. Android自定义控件简单实现ratingbar效果

    先上图: 一开始让我自定义控件我是拒绝的,因为android很早以前就有一个控件ratingbar,但是设置样式的时候我发现把图片设置小一点就显示不全,一直找不到解办法!(可以设置系统的自带的小样式) ...

  3. 基于.NET平台常用的框架技术整理

    个人整理 部分收藏于:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线 ...

  4. c# 读取导入的excel文件,循环批量处理数据

    dt = FM_HR_ShiftMaintenanceManager.GetCsvToDataTable(strConn, excelName,"XJSQMonthlyImportExcel ...

  5. Codefroces D2. Magic Powder - 2(二分)

    http://codeforces.com/problemset/problem/670/D2 http://codeforces.com/problemset/problem/670/D1 time ...

  6. ZOJ 3435 Ideal Puzzle Bobble 莫比乌斯反演

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4119 依然是三维空间内求(1,1,1)~(a,b,c)能看到的整点数,平移一下 ...

  7. selenium+python 安装使用

    一.序言 selenium官网selenium简单教程selenium完整教程python基础教程 二.安装python3 https://www.python.org/downloads/relea ...

  8. <QT障碍之路>qt中使用串口类接收数据不完整

    问题:当用QT中的serial->readAll()的时候,不会把全部的数据一次性都读取出来,而是阶段性的.原因是因为当串口有信号时候,readyRead()信号就会被抛出,那么一帧完整的数据帧 ...

  9. 【Codeforces Round #425 (Div. 2) A】Sasha and Sticks

    [Link]: [Description] [Solution] 傻逼题; 获取n/k; 对n/k的奇偶性讨论一下就好 [NumberOf WA] 0 [Reviw] [Code] #include ...

  10. Java 学习(13):抽象类& 抽象方法& 封装

    目录 --- 抽象类 --- 封装 抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的 ...