【网络】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_INET
    u_short sin_port; //用来存放连接的端口
    struct in_addr{
        .....
        u_long S_addr; // 用 inet_addr(char *) 把字符串IP转换为数字
    }sin_addr;
    char sin_zero[8];
}

然后显示转换成SOCKADDR*就行了
size 就是 这个的 sizeof 。。。。
接收下次讲,这次讲到这儿

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值