网络编程
文章平均质量分 74
小白一枚~
记录自己学习的网络编程方面的一些东西
-兮
Holly
展开
-
TCP/UDP网络编程:网络字节序 socket() listen() bind() accept() connect() sendto() recvfrom() 线程池实现代码实例
1 网络字节序即大小端模式。TCP/IP规定网络数据流采用大端字节序,低地址表示高字节网络字节序和主机字节序的转换:h=host, n=network, l=32位long, s=16位short#include <arpa/inet.h>uint32_t htonl(uint32_t hostlong);uint32_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t netlong);uint32_t ntohs(uin原创 2021-09-13 22:08:21 · 739 阅读 · 0 评论 -
网络:最容易弄懂的TCP的【三次握手】和【四次挥手】
1 TCP 段格式面向连接协议:即连接时三次握手前提 16位源端口号 16位目的端口号 32位序号seq 32位确认序号ack 4位首部长度 6位保留 1位URG 1位ACK 1位PSH 1位RST 1位SYN 1位FI原创 2021-09-13 12:55:26 · 247 阅读 · 1 评论 -
LinuxC 进程间的通信:基于文件的 pipe()匿名管道 mkfifo()命名管道 epoll()多文件
pipe() 匿名管道创建匿名管道 局限性:两端进程须具有共同祖先 及文件描述符指向同一文件#include <unistd.h>int pipe(int pipefd[2]);数组第一个元素为读取数据的文件描述符第二个元素为写入数据的文件描述符mkfifo() 命名管道命名管道创建以后可以被任何进程像文件一样使用,须读写进程必须同时出现#include <sys/types.h>#include <sys/stat.h>int mkfi原创 2021-08-17 11:28:57 · 280 阅读 · 0 评论 -
socket:实现回声客户端
指客户端向服务器发送一条数据,服务器再将数据原样返回给客户端,就像声音一样,遇到障碍物会被“反弹回来”scanf() 读取到空格时认为一个字符串输入结束;如果不希望把空格作为字符串的结束符,可以使用 gets() 函数客户端 client.cpp#include <stdio.h>#include <stdlib.h>#include <WinSoc...原创 2019-10-11 15:47:07 · 297 阅读 · 0 评论 -
socket: Windows的send()/recv() Linux的write()/read():发送数据和接收数据
Windows发送数据和接收数据从服务器端发送数据使用 send() 函数,原型为int send(SOCKET sock, const char *buf, int len, int flags);客户端接收数据使用 recv() 函数,原型为int recv(SOCKET sock, char *buf, int len, int flags); sock 为要发送数据的套接...原创 2019-10-11 15:40:11 · 1135 阅读 · 0 评论 -
socket: listen()函数 accept()函数
listen() 函数可以让套接字进入被动监听状态int listen(int sock, int backlog); //Linuxint listen(SOCKET sock, int backlog); //Windowsbacklog 为请求队列的最大长度,请求队列即缓冲区缓冲区的长度(能存放多少个客户端请求)可以通过 listen() 函数的 backlog 参数指...原创 2019-10-11 15:29:10 · 737 阅读 · 0 评论 -
socket: bind()绑定套接字函数、connect()建立连接函数
//bind() 函数原型int bind(int sock, struct sockaddr *addr, socklen_t addrlen); //Linuxint bind(SOCKET sock, const struct sockaddr *addr, int addrlen); //Windows//connect() 函数原型int connect(int sock,...原创 2019-10-11 15:15:06 · 572 阅读 · 0 评论 -
socket: windows下的socket()函数:创建套接字
SOCKET socket(int af, int type, int protocol);以上为函数原型,返回 SOCKET 类型的句柄。我们使用 socket() 函数来创建套接字af 表示IP地址类型,有 AF_INET(Address Family Inetnet, 表示 IPv4) 和 AF_INET6(表示IPv6) PF_INET(Protocol Family ...原创 2019-10-06 15:30:56 · 387 阅读 · 0 评论 -
socket:WinSock 编程 示范
WinSock 编程的第一步就是加载 ws2_32.dll,然后调用 WSAStartup() 函数进行初始化,并指明要使用的版本号#include <stdio.h>#include <winsock2.h>#pragma comment (lib, "ws2_32.lib")int main(){ WSADATA wsaData; WSASt...原创 2019-10-05 17:42:34 · 256 阅读 · 0 评论 -
socket:IP MAC 端口号
IPInternet Protocol Address 的缩写,译为“网际协议地址”往往是一个局域网才拥有一个 IPv4 地址MACMedia Access Control Address 的缩写,直译为“媒体访问控制地址”,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address)。MAC地址是真正能...原创 2019-10-04 15:10:05 · 415 阅读 · 0 评论 -
socket:套接字的类型SOCK_STREAM和SOCK_DGRAM
SOCK_STREAM(流式套接字)面向连接的套接字SOCK_STREAM 是一种可靠的、双向的通信数据流,数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送。 数据在传输过程中不会消失; 数据是按照顺序传输的; 数据的发送和接收不是同步的(有的教程也称“不存在数据边界”)。SOCK_DGRAM(数据报格式套接字)无连接的套接字数据报套接字是一种不可靠的...原创 2019-10-04 11:23:26 · 3677 阅读 · 1 评论