socket编程
文章平均质量分 63
Heisenberg_888
互联网工程师,努力学习中
展开
-
简述同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别
原文链接:简述同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别 - 大数据从业者FelixZh - 博客园 (cnblogs.com)努力做到知识闭环,把自己学到的或者觉得好的文章都转载到自己博客里。POSIX同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之转载 2021-09-24 14:41:10 · 281 阅读 · 0 评论 -
linux网络编程基础api
socket系统调用,成功返回一个socket文件描述符,失败返回-1并设置errnobind命名套接字,成功返回0,失败返回-1并设置errnolisten监听socket,成功返回0,失败返回-1并设置errnoaccept从listen监听队列中接受一个连接,成功返回新的socket,失败返回-1,并设置errnoconnect建立连接,成功返回0,失败返回-1,并设置errnoshutdown关闭连接,成功返回0,失败返回-1,并设置errno服务端先建立一个socka.原创 2021-02-09 22:00:09 · 184 阅读 · 0 评论 -
select、poll、epoll之间的区别
https://www.cnblogs.com/aspirant/p/9166944.html(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用户传入的数组拷转载 2021-02-09 21:34:54 · 205 阅读 · 0 评论 -
高性能服务器程序框架
服务器编程框架I/O模型socket在创建时默认是阻塞的,针对阻塞I/O的系统调用可能因为无法立即完成而被系统挂起,直到等待的事件发生为止。比如客户端connect服务器,如果没有收到服务器返回的确认报文段,就被挂起,直到收到报文并唤醒connect调用。socket的基础API中,被阻塞的系统调用有accept、send、recv和connect。对于非阻塞I/O执行的系统调用总是立即返回,不管事件是否发生。如果没有发生返回-1,和出错的返回值一样,但是可以通过errno来区分。...原创 2021-01-28 16:31:38 · 113 阅读 · 0 评论 -
高级I/O函数pipe,dup,readv,splice,sendfile,tee,fcntl
pipe函数用于创建一个管道,实现进程间通信。#include<unistd.h>int pipe(int fd[2]);原创 2021-01-08 11:15:28 · 254 阅读 · 0 评论 -
getsockopt和setsockopt
下面2个系统调用是专门用来读取和设置socket文件描述符属性的方法:这2个函数成功时返回0,失败返回-1并设置errno。原创 2021-01-08 10:16:50 · 1009 阅读 · 1 评论 -
IP地址转换函数
原创 2020-12-01 22:24:19 · 156 阅读 · 0 评论 -
python套接字服务端连接多个client收发消息
第一版:server.py#!/usr/bin/python3# -*-coding:utf-8 -*-#import socketfrom socket import *import timeCOD = 'utf-8'HOST = gethostname() # 主机ipPORT = 21566 # 软件端口号BUFSIZ = 1024ADDR = (HOST, PO...原创 2020-04-17 18:24:48 · 1073 阅读 · 0 评论 -
TCP Linux编程(客户端&服务器端)
代码链接:server.c client.c原创 2020-03-08 09:27:50 · 398 阅读 · 0 评论 -
UDP Linux编程(客户端&服务器端)
server.c#include <sys/types.h>#include <sys/socket.h>#include<pthread.h>#include <netinet/in.h>#include <stdio.h>#include <string.h>#include <unistd.h&g...原创 2020-03-01 17:02:10 · 551 阅读 · 0 评论 -
网络聊天程序
import socketimport argparseHOST='127.0.0.1'PORT=8080def listen_socket(host,port): """监听socket TCP连接""" sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.setsockopt(socket....原创 2020-01-10 16:37:46 · 328 阅读 · 0 评论 -
socket套接字——UDP服务器实现
UdpServer.pyimport socketMAX_SIZE=5600#新建socket连接sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#绑定主机和端口,主机为空表示任意主机sock.bind(('localhost',8005))while True: print(u'服务器等待连接...') ...原创 2020-01-10 16:12:38 · 350 阅读 · 0 评论 -
socket套接字——TCP服务器实现
TcpServer.pyimport socketfrom time import ctimeHOST='localhost'PORT=5008BUF_SIZE=1024ADDRESS=(HOST,PORT)if __name__=='__main__': #新建socket连接 server_socket=socket.socket(socket.AF_IN...原创 2020-01-10 15:11:24 · 420 阅读 · 0 评论 -
TCP socket编程(套接字编程)基础
这学期有这门课,所以学习了一波套接字编程,其实我这算是预习了hhhhhhh本篇主要介绍如何运行程序(我最讨厌博客主直接上代码,都不说怎么用,那有个jb用呀),基本概念可以参考这篇博客:https://blog.csdn.net/lihao21/article/details/64624796,以后我会自己写一份关于套接字编程的基本概念的博客的。套接字(socket)是一种通信机制,凭借这种...原创 2018-09-06 09:54:54 · 283 阅读 · 0 评论