- 浏览: 771781 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
以下头文件都是#include<sys/socket.h>
1.socket函数:指定期望的通信协议类型
int socket(int family,int type,int protocol);
返回值叫做套接字描述符,socket descriptor,一般简称sockfd,失败返回-1,成功返回非负值
family:指明协议族,一般:AF_INET(IP protocol family,IPV4)
type:一般是SOCK_STREAM(字节流套接字,也可以是数据报套字SOCK_DGRAM等)
protocol:一般设为0,也可以使用IPPROTO_TCP等
2.connect函数:客户端用此与server来建立tcp连接,失败返回-1,成功返回0
int connect (int sockfd,const struct sockaddr* servaddr,socklen_t addrlen);
sockfd:套接字描述符
servaddr和addrlen是一个指向套接字地址结构的指针与该结构的大小.
3.bind函数:把一个本地协议地址赋予一个套接字,失败返回-1,成功返回0
int bind(int sockfd,const const struct sockaddr* servaddr,socklen_t addrlen);
看起来参数与connect一样哦!
4.listen函数:仅由TCP服务器调用,当socket函数创建一个套接字时,它被假设为一个主动套接字,也就是说,它是一个将调用connect发起连接的客户套接字.listen函数把一个未连接的套接字换成一个被动套接字,指示内核应该接受指向该套接字的连接请求.失败返回-1,成功返回0
backlog:内核应该为相应套接字排除的最大连接数,以下2种之和要小于backlog
4.1未完成连接队列:已由某个客户发出并到达服务器,而服务器正在等待完成相应的TCP三路握手过程.这些套接字处于SYN_RCVD状态.
4.2已完成连接队列:每个已完成TCP三路握手过程的客户对应其中一项.这些套接字处理ESTABLISHED状态.
5.accept函数:由TCP服务器调用,用于从已完成队列队头返回下一个已完成连接.如果已完成连接队列为空,那么进程被投入睡眠.失败返回-1,成功返回非负
int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);
如果对后面2个参数不感兴趣,则置为空.
6.fork函数:调用一次,返回两次,有点麻烦,以后再看!
7.close函数:关闭套接字,终止TCP连接
int close(int sockfd);失败返回-1,成功返回0
1.socket函数:指定期望的通信协议类型
int socket(int family,int type,int protocol);
返回值叫做套接字描述符,socket descriptor,一般简称sockfd,失败返回-1,成功返回非负值
family:指明协议族,一般:AF_INET(IP protocol family,IPV4)
type:一般是SOCK_STREAM(字节流套接字,也可以是数据报套字SOCK_DGRAM等)
protocol:一般设为0,也可以使用IPPROTO_TCP等
2.connect函数:客户端用此与server来建立tcp连接,失败返回-1,成功返回0
int connect (int sockfd,const struct sockaddr* servaddr,socklen_t addrlen);
sockfd:套接字描述符
servaddr和addrlen是一个指向套接字地址结构的指针与该结构的大小.
3.bind函数:把一个本地协议地址赋予一个套接字,失败返回-1,成功返回0
int bind(int sockfd,const const struct sockaddr* servaddr,socklen_t addrlen);
看起来参数与connect一样哦!
4.listen函数:仅由TCP服务器调用,当socket函数创建一个套接字时,它被假设为一个主动套接字,也就是说,它是一个将调用connect发起连接的客户套接字.listen函数把一个未连接的套接字换成一个被动套接字,指示内核应该接受指向该套接字的连接请求.失败返回-1,成功返回0
backlog:内核应该为相应套接字排除的最大连接数,以下2种之和要小于backlog
4.1未完成连接队列:已由某个客户发出并到达服务器,而服务器正在等待完成相应的TCP三路握手过程.这些套接字处于SYN_RCVD状态.
4.2已完成连接队列:每个已完成TCP三路握手过程的客户对应其中一项.这些套接字处理ESTABLISHED状态.
5.accept函数:由TCP服务器调用,用于从已完成队列队头返回下一个已完成连接.如果已完成连接队列为空,那么进程被投入睡眠.失败返回-1,成功返回非负
int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);
如果对后面2个参数不感兴趣,则置为空.
6.fork函数:调用一次,返回两次,有点麻烦,以后再看!
7.close函数:关闭套接字,终止TCP连接
int close(int sockfd);失败返回-1,成功返回0
发表评论
-
滑动窗口与拥塞控制
2017-09-29 14:47 764滑动窗口:用作流量控制: 1.发送端和接收端各维护一个独立的发 ... -
rawsocket发送tcp包
2017-09-25 11:52 990testTcp.h #ifndef TESTTCP_H ... -
柔性数组
2017-09-20 09:53 512#include <iostream> #i ... -
rawsocket发送dns包
2017-09-14 15:18 620#include <stdio.h> #in ... -
rawsocket发送icmp包
2017-09-06 09:54 668#include <stdio.h> #in ... -
netfilter
2016-10-04 20:31 487http://blog.chinaunix.net/uid-2 ... -
gdb的简单使用
2016-09-19 15:18 423注意编译的时间加上-g参数 1.调试运行 gdb a.out ... -
TCP各状态的意义
2016-03-01 14:06 428各个状态的意义如下: LISTEN - 侦听来自远方TCP端 ... -
log
2015-03-30 17:42 458log.h #ifndef __LOG_H__ #def ... -
TIMEWAIT与CLOSEWAIT
2015-03-17 11:32 667http://blog.csdn.net/kobejayand ... -
TcpClient
2015-01-16 17:46 476TcpClient.h #ifndef TCPCLIENT ... -
信号量
2014-09-26 10:20 688#include <semaphore.h> ... -
共享内存
2014-09-17 10:39 606SharedMemory.h #ifndef SHARED ... -
记录锁
2014-09-11 16:32 446#include <errno.h> #in ... -
popen
2014-09-06 14:50 645#include <stdio.h> #in ... -
大小端存储
2014-09-05 09:29 613#include <stdio.h> i ... -
条件变量(cond)
2014-09-01 11:02 893#include <pthread.h> # ... -
读写锁
2014-09-01 10:33 738#include <pthread.h> # ... -
trylock
2014-09-01 10:07 676#include <pthread.h> # ... -
线程分离
2014-09-01 10:00 701http://www.cnblogs.com/mydomain ...
相关推荐
在这篇文章中,我们将介绍套接字编程的基本原理,包括客户机/服务器模式、基本套接字、套接字连接、数据传输、多路复用和关闭套接字等内容。 一、客户机/服务器模式 客户机/服务器模式是TCP/IP网络中两台计算机...
在Java中,Socket和ServerSocket类提供了套接字编程的基本功能。本文将深入探讨Java套接字编程的相关知识点,包括Socket和ServerSocket的使用、数据传输、异常处理以及实际应用中的常见问题。 1. **Socket类**:...
**Qt套接字编程源码详解** 在软件开发中,网络通信是不可或缺的一部分,而Qt框架提供了一套强大且易用的套接字编程接口,使得开发者能够方便地实现客户端和服务器之间的数据交换。本篇将深入探讨Qt套接字编程的原理...
本文将详细介绍Java套接字编程的基本概念、原理以及实际操作方法。 #### 二、Java网络编程概述 Java网络编程主要依赖于`java.net`和`javax.net`这两个包中的API。这些API提供了强大的功能,使得开发者能够轻松地...
通过这些函数的使用,可以实现套接字编程的基本功能,如创建套接字、接受连接请求、绑定地址、关闭套接字等。这些函数的使用可以使得开发者更方便地编写套接字程序,提高了开发效率和代码可读性。
Java的Socket套接字编程是网络通信中的基础技术,它提供了两台计算机间低级别的连接。在Java中,Socket类和ServerSocket类是实现客户端-服务器通信的核心组件。本资源包含的是基于Java的Socket套接字编程的源代码...
本文将深入探讨套接字编程的基本概念,包括套接字的定义、地址结构、套接字类型以及基本的套接字系统调用。 首先,我们要理解套接字编程中的几个核心概念。在套接字编程中,一个半相关(half-association)是由协议...
本文将深入探讨网络套接字编程的基本概念、相关函数以及在MFC(Microsoft Foundation Classes)框架下的实现方法。 首先,我们需要了解套接字的定义。套接字是网络通信中的一个抽象接口,它是两台计算机之间进行...
本项目“套接字编程之聊天小工具”旨在为初学者提供一个实践平台,通过VC++编译环境,深入理解并掌握套接字编程的基本原理和应用。 首先,我们来探讨套接字的基本概念。套接字是操作系统提供的接口,允许应用程序...
### 数据报套接字编程与原始套接字编程 #### 一、概述 在计算机网络领域,套接字(Socket)编程是一种重要的技术手段,它为应用程序提供了与网络进行交互的能力。套接字按照不同的标准可以分为多种类型,其中数据报...
逆向套接字编程实验是计算机网络学习中的一个重要实践环节,主要目的是理解网络通信的基本原理,特别是客户端与服务器之间的交互过程。在这个实验中,我们将模拟客户端和服务器的行为,通过逆向工程来实现套接字编程...
在Windows平台上进行套接...总的来说,"Windows套接字广播编程实例"是一个很好的起点,它帮助开发者掌握使用UDP套接字进行广播通信的基本技能。通过深入学习和实践,可以进一步理解和应用更复杂的网络编程概念和技术。
第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 I/O复用:select和poll函数 第7章 套接字选项 第8章 基本UDP套接字编程 第9章 基本SCTP...
TCP 套接字编程 本文主要介绍了基于 TCP 套接字的文件传输客户服务器程序设计,通过实验实现了迭代服务器、并发服务器和使用单进程和 select 的 TCP 服务器,掌握了基于 TCP 套接口的网络程序设计和大规模文件传输...
本文将详细讲解"简单的套接字编程",包括基础概念、服务端实现、客户端交互以及如何使用Python进行实际操作。 首先,我们要理解套接字的基本概念。套接字是操作系统提供的一种接口,用于在网络中实现进程间通信...
熟悉基于Python进行UDP套接字编程的基础知识,掌握使用UDP套接字发送和接收数据包,以及设置正确的套接字超时,了解Ping应用程序的基本概念,并理解其在简单判断网络状态,例如计算数据包丢失率等统计数据方面的意义...
Java套接字编程是网络通信的核心技术之一,主要用于实现客户端与服务器之间的数据交换。本文将深入探讨Java中的Socket编程,包括基本概念、工作原理、创建和使用Socket的过程,以及常见问题和解决策略。 1. 基本...
在C#中,套接字编程是实现网络通信的基础,特别是在TCP/IP协议栈上构建应用。C#提供了丰富的API来支持套接字编程,使得开发者能够轻松地创建客户端和服务器端应用程序。以下是对C#中套接字编程的详细解释。 首先,...
Java套接字编程是网络通信的核心技术之一,它允许两个应用程序通过网络进行数据交换。在Java中,套接字(Socket)是实现客户端-服务器模型通信的基础,它提供了低级别的、面向连接的、可靠的字节流服务。这篇笔记将...
第二部分 基本套接字编程 第3章 套接字编程简介 第4章 基本TCP套接字编程 第5章 TCP客户/服务器程序示例 第6章 IO复用:select和poll函数 第7章 套接字选项 第8章 基本UDP套接字编程 第9章 基本SCTP套接字...