【网络】c++ socket 学习笔记(一)
首先,我也是新手,一边学一边写
先说一下什么是套接字呢(socket) 可以自己去翻书
或者上百度百科 百度百科
那么C++是怎么声明套接字的呢
在声明之前要加入头文件
#include <winsock2.h>
#progma comment(lib, "ws2_32")
如果编译出错自己百度为什么,对不同的IDE有不同的解决方法
下面是C++的声明方法
/* Tcp */
SOCKET sock = socket(PF_INET,SOCK_SDREAM,IPPROTO_TCP);
/* Udp */
SOCKET sock = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
在不使用这个套接字的时候记得要及时关闭
closesocket(SOCKET);
说到这儿就要提到如何连接和接受连接了
先讲连接(比较简单Q~Q)
send(SOCKET, char*, int size, int flags);
第一个SOCKET 不用说是什么了把
第二个char * 就是个字符串
size 就是字符串的大小(长度)=> sizeof
flags 一般为0 但是下面是可选的选项
MSG_DONTROUTE 勿将数据路由出本地网络
MSG_EOR 如果协议支持,此为记录结束
MSG_OOB 如果协议支持,发送带外数据
MSG_NOSIGNAL 禁止向系统发送异常信息
//百度百科上看到的也不知道是否正确
但是,在send之前要先connect到对方
connect(SOCKET, SOCKADDR*, int size);
第一个SOCKET 不说什么了
第二个SOCKADDR* 是什么呢
struct sockaddr_in{short sin_family; //设置为PF_INETu_short sin_port; //用来存放连接的端口struct in_addr{.....u_long S_addr; // 用 inet_addr(char *) 把字符串IP转换为数字}sin_addr;char sin_zero[8];
}
然后显示转换成SOCKADDR*就行了
size 就是 这个的 sizeof 。。。。
接收下次讲,这次讲到这儿
转载于:https://www.cnblogs.com/JeremyGJY/p/5921742.html
【网络】c++ socket 学习笔记(一)相关推荐
- Python实战之网络编程socket学习笔记及简单练习
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) 参数一:地址簇 socket.AF_INET IPv4(默认) socket.AF_IN ...
- 网络基础知识学习笔记
网络基础知识学习笔记 参考菜鸟教程.个人学习整理,仅供参考.三年前学过,三年没用忘了,重新学习整理一下. 文章目录 网络基础知识学习笔记 OSI七层网络模型 IP地址 子网掩码及网络划分 网络协议 A ...
- P2P网络基础(学习笔记)
P2P网络基础(学习笔记) 基本概述 P2P与C/S架构 P2P网络的特点 P2P网络的主要功能 P2P网络的分类 集中式 全分布式非结构化 全分布式结构化 混合式 比特币网络 P2P网络的应用 基本 ...
- 网络虚拟化NSX学习笔记
网络虚拟化NSX学习 第一章VMware NSX 6.2简介 1.1 数据中心演化趋势 软件定义数据中心SDDC(私有云) 1.演化趋势 1)Apple Store式的IT服务 2)期望自服务:web ...
- python socket recvfrom_Python socket学习笔记(一)
最近在看 Python的视频,针对socket 编程做一个笔记 一.socket是什么? socket 通常也称为"套接字",用于描述 IP 地址和端口,是一个通讯链的句柄.应用程 ...
- python 谷歌地图api_《Python网络编程》学习笔记--使用谷歌地理编码API获取一个JSON文档...
Foundations of Python Network Programing,Third Edition <python网络编程>,本书中的代码可在Github上搜索fopnp下载 本 ...
- (pytorch-深度学习系列)ResNet残差网络的理解-学习笔记
ResNet残差网络的理解 ResNet伴随文章 Deep Residual Learning for Image Recognition 诞生,该文章是MSRA何凯明团队在2015年ImageNet ...
- java马士兵网络编程_学习笔记-马士兵java - 网络编程
1. 网络基础 a. 计算机网络:把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地相互传递信息,共享硬件.软件.数据信息等资源. ...
- 《Linux多线程服务端编程:使用muduoC++网络库》学习笔记
文章目录 第1章 线程安全的对象生命期管理 1.1 当析构函数遇到多线程 1.1.1 线程安全的定义 1.1.3 线程安全实例 1.2 对象的创建很简单 1.3 销毁很难 1.4 线程安全的Obser ...
最新文章
- java容量_Java集合类初始容量、加载因子、扩容增量
- 第二部分面向对像基础第五章
- 李笑来 css,李笑来都想投资千万美金的ACSS通证即将强势登陆奇点交易所
- Android开发之在Fragment和Activity页面拍照需要注意的地方
- FlashPaper安装及使用方法
- 如何限制iframe内网页打开新窗口_网页外链用了 target=quot;_blankquot;,结果悲剧了...
- dsp对音响提升大吗_原车音响太差?!想要升级却不知道买什么品牌好?我来告诉您!...
- 安卓学习专栏——百度地图(3)配置定位模式为GPS定位功能(图文+代码)
- vue使用高德地图API,定位,搜索,拖拽选址
- Java聊天室系统的设计与实现(完整源码 sql文件 论文)
- 算法学习(二)——Alpha-Beta剪枝算法
- c莫比乌斯函数_莫比乌斯函数
- 生动的ajax图片显示效果,LightBox
- 在动画中添加音乐和声音
- wxh play 组织结构图
- LC EDA 学习笔记
- 你所需要了解的关于 Monorepo 的一切
- windows 10 清理系统盘
- HBuilder开发词典app(一)--基本页面布局
- cmi编码实验_【2017年整理】实验及HDB3码CMI码编码.ppt
热门文章
- dns服务器系统架构,详解 DNS 与 CoreDNS 的实现原理
- supervisor 子进程退出_用supervisor监管你的程序,不用担心程序挂了
- STM32 串口接收流程-串口接收中断
- php对mysql的操作教程,php与Mysql的一些简单的操作
- java struts 框架_java中struts 框架的实现
- HTML+CSS+JS实现 ❤️3D建筑结构旋转特效❤️
- js文件夹上传到服务器,js 上传img到服务器
- java idle 机制_HotSpot VM重量级锁降级机制的实现原理
- IDEA创建.properties文件
- MySQL 指定过滤条件