顾乔芝士网

持续更新的前后端开发技术栈

Linux并发IO详解(下)(linux并发执行命令的方式)

Demo

本部分代码实现参考可能是最接地气的 I/O 多路复用小结 (
https://mengkang.net/726.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)

阻塞式网络编程接口

详解协程的实现与原理剖析(协程 原理)

协程的起源

问题:协程存在的原因?协程能够解决哪些问题?

在我们现在CS,BS开发模式下,服务器的吞吐量是一个很重要的参数。其实吞吐量是IO处理时间加上业务处理。为了简单起见,比如,客户端与服务器之间是长连接的,客户端定期给服务器发送心跳包数据。客户端发送一次心跳包到服务器,服务器更新该新客户端状态的。心跳包发送的过程,业务处理时长等于IO读取(RECV系统调用)加上业务处理(更新客户状态)。吞吐量等于1s业务处理次数。

Linux网络编程(第一部分)涉及的代码

套接字定义:

它是通过标准的 UNIX 文件描述符和其他的程序通讯的一个方法。

Linux网络编程——端口复用(多个套接字绑定同一个端口)

实际上,默认的情况下,如果一个网络应用程序的一个套接字 绑定了一个端口( 占用了 8000 ),这时候,别的套接字就无法使用这个端口( 8000 ), 验证例子如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
 
int main(int argc, char *argv[])
{
	int sockfd_one;
	int err_log;
	sockfd_one = socket(AF_INET, SOCK_DGRAM, 0); //创建UDP套接字one
	if(sockfd_one < 0)
	{
	perror("sockfd_one");
	exit(-1);
	}
 
	// 设置本地网络信息
	struct sockaddr_in my_addr;
	bzero(&my_addr, sizeof(my_addr));
	my_addr.sin_family = AF_INET;
	my_addr.sin_port = htons(8000);		// 端口为8000
	my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 
	// 绑定,端口为8000
	err_log = bind(sockfd_one, (struct sockaddr*)&my_addr, sizeof(my_addr));
	if(err_log != 0)
	{
		perror("bind sockfd_one");
		close(sockfd_one);		
		exit(-1);
	}
 
	int sockfd_two;
	sockfd_two = socket(AF_INET, SOCK_DGRAM, 0);  //创建UDP套接字two
	if(sockfd_two < 0)
	{
		perror("sockfd_two");
		exit(-1);
	}
 
	// 新套接字sockfd_two,继续绑定8000端口,绑定失败
	// 因为8000端口已被占用,默认情况下,端口没有释放,无法绑定
	err_log = bind(sockfd_two, (struct sockaddr*)&my_addr, sizeof(my_addr));
	if(err_log != 0)
	{
		perror("bind sockfd_two");
		close(sockfd_two);		
		exit(-1);
	}
 
	close(sockfd_one);
	close(sockfd_two);
 
	return 0;
}

你们要的Socket网络基础编程讲解来啦

首先列举一下socket网络通信的例子:使用局域网打游戏,用浏览器连接外网看视频,使用QQ与好友通信,手机连接wifi传数据等等。socket是底层抽象给应用层所使用的一套接口函数,本篇讲解这些函数的使用。

对象

  1. 服务器server(等待客户端连接)
  2. 客户端client(主动连接服务器)

对象之间的联系:

client是根据server的‘’ip地址+端口号”找到对方并建立连接的

WIFI模块开发教程之W600网络篇1:AP模式下TCP Client通信

前言

本文研究如何在AP模式下进行TCP Client通信,所谓AP模式是说模块起来一个softAP热点,可以供其他WIFI设备连接,当其他设备连接成功后,另WIFI模块作为客户端,局域网中其他设备作为服务端进行TCP数据通信。

一、理论基础

本节要处理的有两个问题,其一是如何利用RT_Thread起来一个softAP,其二是如何使用Socket套接字编程搞定TCP Client程序编写。

腾讯三面:socket 优雅的关闭连接(腾讯网窗口怎么关闭)


前言

如何用服务器搭建自己的个人网站(如何用服务器搭建自己的个人网站呢)


这篇教程主要是告诉大家如何利用TCP和HTTP协议来完成网站的搭建。
首先你需要有C/C++语言基础,且有服务器、客户端概念,如果你了解TCP或者HTTP协议的话,那么将会帮助你更快的学会如何搭建个人网站。
该服务器使用的Windows中的IOCP模式来进行,我将put代码中最为重要的几个部分

1.准备好HTML文件,也就是你所要发布的网页,可以是静态网页也可以是动态网页,为了更好的帮助大家入门,我准备了一个最为简便的html代码如下:

谈谈Linux epoll惊群问题的原因和解决方案

近期排查了一个问题,epoll惊群的问题,起初我并不认为这是惊群导致,因为从现象上看,只是体现了CPU不均衡。一共fork了20个Server进程,在请求负载中等的时候,有三四个Server进程呈现出比较高的CPU利用率,其余的Server进程的CPU利用率都是非常低。

中断,软中断都是均衡的,网卡RSS和CPU之间进行了bind之后依然如故,既然系统层面查不出个所以然,只能从服务的角度来查了。

自上而下的排查首先就想到了strace,没想到一下子就暴露了原形:

解析RTP包的头部结构(rtcp包)

RTP数据包构成格式:

RTP数据包一般由:Header+有效载荷数据:构成,Header一般为12字节,有效载荷数据则可以是音频数据,h264码流,PS码流等等

<< < 1 2 3 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言