socket编程
文章平均质量分 78
介绍最为基本的socket变成函数,从零到完成简单服务器的实现。
dearQiHao
数据容灾备份
展开
-
网络编程与select/poll/epoll服务器的实现
本部分主要是介绍socket网络编程的基本API——并展示一个服务器与客户端连接的具体流程是如何的实现一个一对一的网络服务器程序socket编程或者网络编程。相信看完博主之前的介绍大家会对网络编程有一定的认识,所以我们就紧接着之前知识点继续介绍,之前时实现了一个回声服务器,现在将其升级为更高效的服务器。select是一种IO多路复用的机制,通常被用于在单个线程中同时监听多个文件描述符(包括socket、标准输入输出、管道等)是否有数据可读或可写。原创 2023-04-24 00:06:28 · 599 阅读 · 0 评论 -
linux服务器实现百万并发遇到的问题以及解决思路
目录前言服务器与客户端的配置介绍server 代码client 代码遇到的问题error too many open files为什么会出现这个问题解决这个问题的思路killed(已杀死)为什么会出现这个问题解决这个问题的思路最终结果学到的经验教训前言在完成百万并发服务器的时候调试了大概五天,期间总会出现莫名其妙的问题导致连接断开,所以本文就这些问题与如何解决这些问题做一个总结。本次实验完成的百万并发指的是单纯的连接数量,中间只是增加了必要的打印信息而已,并未增加具体的业务信息。服务器与客户端的配原创 2023-04-23 22:41:21 · 892 阅读 · 0 评论 -
011.socket函数错误封装处理
在 008.一个简单的网络服务器开发----回声服务器中所实现的服务器功能简单,简单到几乎没有什么错误处理,我们知道,系统调用不能保证每次都成功。如 010所示,如果我们因为自己代码写的有些问题那么光是排查错误就够我们受的了。出错的可能千千万,所以我们必须进行出错处理,这样一方面可以保证我们的程序逻辑正常,另一方面可以迅速定位到故障信息。为了使错误处理的代码不影响主程序的可读性,我们封装的 socket相关的系统函数加上错误处理代码包装秤新的函数,做成一个新的模块,名为 error_handlinger原创 2021-05-06 14:17:05 · 3064 阅读 · 3 评论 -
socket编程之回声服务器函数的陷阱
由connect函数使用不当导致的小错误 话不多说先看代码:server.c#include<stdio.h>#include<ctype.h>#include<unistd.h>#include<sys/socket.h>#include<arpa/inet.h>#include<string.h>#define SERVER_PORT 9527int main(void原创 2021-04-23 12:54:13 · 2304 阅读 · 0 评论 -
socket编程之回声服务器
标题回声服务器的实现结合我们之前对socket函数的分析,现在做一个最简单的回声服务器(由客户端输入一串字符,再由服务器端转换成大写字符回显给客户端)特别说明:为了突出代码的逻辑部分,博主就没有在写有关的判断代码了,读者有兴趣可以根据各个函数的返回值自行添加错误判断函数。server.c#include<stdio.h>#include<unistd.h>#include<string.h>#include<sys/socket.h>#incl原创 2021-04-19 14:52:16 · 2509 阅读 · 2 评论 -
基于 Linux 的文件操作 网络编程的最后一环
Linux下万物皆文件在了解了客户端和服务器的函数调用之后,我们只需要了解下文件操作就能编写出属于自己的客户端和服务器了,还能让他们进行通信。这个内容其实是很简单的,所以博主就不再做过多的讲解打开文件#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>int open(const c...原创 2019-11-03 10:38:01 · 2922 阅读 · 0 评论 -
socket编程之 connect()函数
再讲了服务器端的函数调用之后,终于来到了我们的客户端编程了(read/write之后会详细介绍的),客户端编程相较于服务器端来说是非常简单的了,在掌握了服务器端编程之后再看客户端编程就会胸有成竹(只需要在学一个函数即可)。在正式开始之前我们还是来回顾一下前面的流程服务器端:socket()-->bin...原创 2019-11-02 23:38:30 · 25185 阅读 · 5 评论 -
socket编程之 accept函数的理解
在进入我们的正题之前,再来复习一波编写服务器的函数流程吧服务器端:socket()-->bind( )-->listen()-->accept()-->read()/write()--->close()socket()//创建套接字bind()//分配套接字地址listen()//等待连接请求状态accept()//允许连接read()/write(...原创 2019-11-01 22:00:16 · 5064 阅读 · 1 评论 -
网络编程之 listen()函数的使用与三次握手的理解
listen()函数在进入我们的函数讲解前大家再回顾一下编写服务器端的流程服务器端:socket()-->bind( )-->listen()-->accept()-->read()/write()--->close()socket()//创建套接字bind()//分配套接字地址listen()//等待连接请求状态accept()//允许连接rea...原创 2019-10-31 20:34:47 · 3704 阅读 · 1 评论 -
网络编程之 字节序和深入理解bind()函数
在上一篇博客里,大家也许会对htons()感到疑惑吧,其实就是字节序的转换,所以这篇博客我们就来详细的解释一下什么是字节序。也就是让大家对 bind函数有更加深刻而性感的认识计算机是小端字节序,网络中是大端字节序。 内存中的多字节数据相对于内存地址有大端和...原创 2019-10-30 21:03:20 · 2865 阅读 · 1 评论 -
网络编程之bind()的未解之谜
初识bind() 相信大家还记得我们之前写到的服务器函,下面博主还是给出之前服务前端的函数调用顺序。服务器端:socket()-->bind( )-->listen()-->accept()-->read()/write()--->close()socket()//创建套接字bind()//分配套...原创 2019-10-29 23:45:42 · 2879 阅读 · 0 评论 -
网络编程函数小总结与初识socket
总结服务器端的函数和客户端的函数再次声明博主写的都是对于linux下的网络编程,没有写关于Windows的网络编程,也许以后会写到。这里只是总结一下,具体参数的含义等后面的跟新1.#include<sys/socket.h> int socket(int domain, int type, int protocol); -->成功:返回文件描述符 失败:返...原创 2019-10-28 22:55:48 · 2713 阅读 · 0 评论 -
网络编程之 socket编程
socket编程(基于linux下的网络编程)提起网络编程那么我们就不得不说一下socket编程了(本博客主要是围绕下面这本书展开的)。感谢bingo大佬提供的书籍链接:https://pan.baidu.com/s/16EXstBLrT6eFYvOB-2WcTA提取码:vynv复制这段内容后打开百度网盘手机App,操作更方便哦其实博主认为socket编程就是套路,很多代码都是可...原创 2019-10-27 23:53:57 · 2707 阅读 · 0 评论