网络编程
Away-Far
这个作者很懒,什么都没留下…
展开
-
Qt http网络请求
#include <QNetworkAccessManager>#include <QNetworkRequest>#include <QNetworkReply>#include <QSslSocket>#include <QSslConfiguration>#include <QTime>#include <QApplication>#include <QDebug>方式一 QUrl u原创 2020-09-24 14:17:15 · 420 阅读 · 0 评论 -
基于window多线程实现web服务端
实现源代码#ifndef _HTTP_SERVER_H#define _HTTP_SERVER_H#include <WinSock2.h>#include <process.h>#include "stdlib.h"#include "stdio.h"#include "string.h"#pragma comment(lib,"ws2_32.lib")#define BUF_SIZE 2048#define BUF_SMALL 100#def..原创 2020-09-23 14:55:21 · 164 阅读 · 0 评论 -
网络编程之——多路IO转接(epoll模型)
epoll内部使用红黑树数据结构,epoll_create函数创建一个根节点并返回,epoll_ctl函数进行添加删除修改子节点。epoll操作过程需要三个接口,分别如下:#include <sys/epoll.h>int epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);int epoll_wait(int epfd, struct epoll_event原创 2020-07-20 16:25:58 · 163 阅读 · 0 评论 -
网络编程之——多路IO转接(poll模型)
poll函数原型struct pollfd { int fd; /* file descriptor */ short events; /* requested events */ short revents; /* returned events */};//fds 监听数组//nfds 监听数组的实际个数//timeout -1 无限超时// 0 立即返回// >0 超时返回 //返回值 >0结构体中reve原创 2020-07-14 15:06:25 · 123 阅读 · 0 评论 -
网络编程之——多路IO转接(select模型改进)
select模型中在处理监听事件时需要对文件描述符依次遍历,此处可以稍作改进,避免不必要的遍历。改进思路定义一个FD_SETSIZE大小的数组,用于存储有效连接定义一个下标变量用于记录存储连接数组中的有效连接最大下标,供遍历作为上限值使用int maxC = -1;int client[FD_SETSIZE];//存储连接的文件描述符for(int k=0;k<FD_SETSIZE;++k)//初始化{ client[k] = -1;}连接时处理if(FD_ISSET(lfd,原创 2020-07-14 10:39:07 · 140 阅读 · 0 评论 -
网络编程之——多路IO转接(select模型)
select模型优点 实现多路复用 避免了频繁创建多进程/多线程处理连接产生的开销,提高了连接处理效率缺点 最多监听1024个文件描述符 事件处理时需要依次遍历,带来不必要的开销select函数原型//nfds 最大描述符加1//readfds 输入输出参数 返回读事件文件描述符集合//writefds输入输出参数 返回写事件文件描述符集合//exceptfds输入输出参数 返回异常事件文件描述符集合//timeout 0 非阻塞 立即返回 NUL原创 2020-07-14 10:13:32 · 170 阅读 · 0 评论 -
网络编程之——多进程并发服务器
思路:主进程循环等待连接,连接成功后创建一个子进程,在子进程中处理该连接的数据通信,然后在主进程中注册SIGCHLD中断信号回收子进程资源防止僵尸进程产生,主进程继续执行等待连接。示例:#include "wrap.h"#include <stdlib.h>//#include <stdio.h>#include <netinet/in.h>#include <netinet/ip.h>#include <arpa/inet.h>//原创 2020-07-09 16:12:42 · 307 阅读 · 0 评论 -
网络编程之——多线程并发服务器
思路:循环等待连接,连接成功后创建一个子线程处理该连接的数据通信,然后继续等待连接。socket接口封装:#include "wrap.h"#include <sys/types.h>#include <errno.h>#include <unistd.h>void sys_err(const char *ch){ perror(ch); exit(1);}int Socket(int domain, int type, int pr原创 2020-07-09 16:04:57 · 262 阅读 · 0 评论 -
网络编程之——简单socket客户端程序
客户端代码执行步骤:1、创建socket;2、连接服务器 connect() (参数传递服务端IP地址和端口);3、数据通信4、关闭连接 close().示例:#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>#include <arpa/inet.h>#include <unistd.h>#include <ctype.h>原创 2020-07-09 15:54:12 · 896 阅读 · 0 评论 -
网络编程之——简单socket服务端程序
服务器端代码执行步骤:1、创建socket;2、绑定服务器地址和端口 bind();3、设置监听参数 listen();4、等待链接 accept();5、关闭链接close().示例:#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>#include <stdio.h>#include <原创 2020-07-09 15:47:41 · 272 阅读 · 0 评论 -
游戏服务器通用架构
游戏服务器通用架构 http://gad.qq.com/article/detail/11616转载 2018-06-17 17:46:47 · 1592 阅读 · 0 评论 -
网络编程——服务器端学习资料
浅谈几种服务器端模型——同步阻塞迭代 http://www.cnblogs.com/Bozh/archive/2012/04/21/2460998.html 浅谈几种服务器端模型——多进程并发式 http://www.cnblogs.com/Bozh/archive/2012/04/21/2461074.html 浅谈几种服务器端模型——多线程并发式(线程池) http://www.cn...原创 2018-06-11 14:09:13 · 193 阅读 · 0 评论 -
获取本机内网、外网ip
基础知识 1、 电脑在局域网内,通过网关/路由器连接到Internet则ip分为内网ip、外网ip。通过ipconfig得到的为局域网ip。 2、电脑直接拨号连接等,则本机通过ipconfig得到的就是外网ip。 代码//Get IP int GetLocalIP(std::string &local_ip); int GetInternetIP(std::string &Inerne原创 2017-06-20 11:41:14 · 3682 阅读 · 0 评论 -
文件断点续传(一)
断点续传 由服务器给客户端一个已经上传的位置标记position,然后客户端再将文件指针移动到相应的position,通过输入流将文件剩余部分读出来传输给服务器文件上传服务器端流程图:文件上传客户端流程图:断点下载 由客户端告诉服务器已经下载的大小,然后服务器会将指针移动到相应的position,继续读出,把文件返回给客户端。原创 2017-06-19 15:42:25 · 582 阅读 · 0 评论