af

一个简单的hello/hi程序(基于python)

时光总嘲笑我的痴心妄想 提交于 2019-12-06 14:57:56
pyhton下使用socket编写聊天程序 socket简介 Socket是应用层与 TCP/IP 协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式,它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据,以符合指定的协议。 所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。 我们可以简单的理解 :socket=ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序。ip与port的结合 socket 就标识了互联网中一个 唯一的程序。 socket分类 有时人们把套接字称为“ 伯克利套接字 ”或“ BSD 套接字 ”(最初套接字产生的地方为加利福尼亚大学伯克利分校)。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。 1基于文件类型的套接字家族 套接字家族的名字: AF_UNIX unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在 同一机器

socket

核能气质少年 提交于 2019-12-06 11:04:55
AF_UNIX(本机通信) AF_INET(TCP/IP – IPv4) AF_INET6(TCP/IP – IPv6) SOCK_STREAM(TCP流) SOCK_DGRAM(UDP数据报) 来源: https://www.cnblogs.com/csic716/p/11980443.html

java对接微软认证,用oauth2.0实现

僤鯓⒐⒋嵵緔 提交于 2019-12-06 07:53:36
由于官网所说所写的demo比较官方,比较难理解,而且只能到获取到token阶段,没有用户到用户信息。就算理解官网所写的,但是还是不能获取到用户信息,这对于业务系统做单点对接,增加很大的难度,附件代码是根据微软相关人员指导,且测试可行的demo,附件地址:https://files.cnblogs.com/files/shishaotao/%E5%BE%AE%E8%BD%AF%E8%AE%A4%E8%AF%81%E5%8D%95%E7%82%B9%E5%AF%B9%E6%8E%A5.zip 来源: https://www.cnblogs.com/shishaotao/p/11969756.html

python-网络编程

断了今生、忘了曾经 提交于 2019-12-06 04:31:34
一:socket和套接字 1.1.什么是socket     socket 的原意是“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 1. 2.套接字分类 这个世界上有很多种套接字( socket ),比如 DARPA Internet 地址(Internet 套接字)、本地节点的路径名(Unix套接字)、CCITT X.25地址(X.25 套接字)等。 1.3.Internet 套接分类   Internet 套接字分成两种类型:   流格式套接字(Stream Sockets)也叫“面向连接的套接字”,在代码中使用 SOCK_STREAM 表示。   数据报格式套接字(Datagram Sockets)也叫“无连接的套接字”,在代码中使用 SOCK_DGRAM 表示。 1.4.无连接套接字 数据报格式套接字(Datagram Sockets)也叫“无连接的套接字”,在代码中使用 SOCK_DGRAM 表示。 计算机只管传输数据,不作数据校验,如果数据在传输中损坏,或者没有到达另一台计算机,是没有办法补救的。也就是说,数据错了就错了,无法重传。 因为数据报套接字所做的校验工作少,所以在传输效率方面比流格式套接字要高。 可以将

unix域套接字

强颜欢笑 提交于 2019-12-05 19:11:50
unix域套接字用于同一台主机上进程之间的通信,与AF_INET套接字相比,AF_LOCAL通信的效率更高: unix域套接字仅仅是复制数据,不执行协议处理 不需要添加或删除网络报头 不计算校验和,不产生序列号 不需要发送确认报文 来源: https://www.cnblogs.com/hshy/p/11940609.html

python 网络编程

时光总嘲笑我的痴心妄想 提交于 2019-12-05 13:44:18
一、楔子 思考:在不同电脑之间通信如何实现。 二、软件开发架构 1、C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 2、B/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。 三、网络基础 1、一个程序如何找到另一个程序 首先,程序必须要启动,其次,必须有这台机器的地址,我们都知道我们人的地址大概就是国家\省\市\区\街道\楼\门牌号这样字。那么每一台联网的机器在网络上也有自己的地址,它的地址是怎么表示的呢? 就是使用一串数字来表示的,例如:100.4.5.6 ip地址 IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址

2019-2020-1 20175221 20175225 20175226 实验三 实时系统

老子叫甜甜 提交于 2019-12-05 11:48:37
2019-2020-1 20175221 20175225 20175226 实验三 实时系统 实验要求 任务一 学习使用Linux命令wc(1) 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端 客户端传一个文本文件给服务器 服务器返加文本文件中的单词数 上方提交代码 附件提交测试截图,至少要测试附件中的两个文件 任务二 使用多线程实现wc服务器并使用同步互斥机制保证计数正确 上方提交代码 下方提交测试 对比单线程版本的性能,并分析原因 实验步骤 任务一 先使用 man wc 了解wc命令的功能与用法 在了解了各参数的作用后,对 test1.txt 和 test2.txt 分别试验 wc wc -w 功能 用socket编程实现 客户端 服务器端 实验代码 客户端 #include<netinet/in.h> // sockaddr_in #include<sys/types.h> // socket #include<sys/socket.h> // socket #include<stdio.h> // printf #include<stdlib.h> // exit #include<string.h> // bzero #define SERVER_PORT 175225 #define BUFFER_SIZE 1024

sockaddr和sockaddr_in的区别

我怕爱的太早我们不能终老 提交于 2019-12-05 05:26:38
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。 在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。 网络中的地址包含3个方面的属性: 1 地址类型: ipv4还是ipv6 2 ip地址 3 端口 相应的,头文件有如下定义: include <netinet/in.h> struct sockaddr { unsigned short sa_family; // 2 bytes address family, AF_xxx char sa_data[14]; // 14 bytes of protocol address }; // IPv4 AF_INET sockets: struct sockaddr_in { short sin_family; // 2 bytes e.g. AF_INET, AF_INET6 unsigned short sin_port; // 2 bytes e.g. htons(3490) struct in_addr sin_addr; // 4 bytes see struct in_addr, below char sin_zero[8]; // 8 bytes zero this if you want to }; struct in_addr { unsigned

基于linux或windows平台上的c/s简单通信

血红的双手。 提交于 2019-12-04 11:55:14
linux: tcpclient.cpp 1 #include<iostream> 2 #include<unistd.h> 3 #include<sys/types.h> 4 #include<sys/socket.h> 5 #include<netdb.h> 6 #include<arpa/inet.h> 7 #include<cstring> 8 #include<sstream> 9 10 using namespace std; 11 12 #define BUFSIZE 512 13 14 // #define SERVERIP "192.168.41.32" 15 // #define SERVERPORT 4140 16 17 /*error report*/ 18 static void bail(const char *on_what){ 19 fputs(strerror(errno), stderr); 20 fputs(": ", stderr); 21 fputs(on_what, stderr); 22 fputc('\n', stderr); 23 exit(1); 24 } 25 26 void getarg(int argc,char* argv[],const char** SERVERIP,int* SERVERPORT) 27 { 28

SCTP编程

旧城冷巷雨未停 提交于 2019-12-04 08:27:58
1. 简介 SCTP是为了在IP网上传输信令而 由IETF的信令传输工作组(SIGTRAN) 提出的传输层协议(RFC2960,RFC4960)。 和TCP,UDP相比, UDP是无连接的传输协议,它能满足低延迟的要求,但是它却无法保证可靠传输。TCP能保证数据可靠传输,但是它也不能完全符合信令传输的要求;TCP套接字不支持多宿性;TCP是面向比特流的,将数据传输当作是没有结构的字节序列。 2. SCTP的基本概念 多宿性(multi-homing) 多宿是指一个SCTP 端点可以通过多个IP地址到达,这样两个SCTP端点在建立了关联后,数据可以通过不 同的物理通路进行传送。也就是说,当一条通路坏掉后,可以通过另一条通路到达对端。 多流性(multi-streaming) 由于采用多个流进行传输而且各个流相互独立,这样当一个流中的数据包需要重传,其他流中的数据可以 继续传输, 解决了在TCP单流中容易出现的队头阻塞现象(head-of-line). 安全机制 SCTP采用“四次握手”的连接建立方式和COOKIE机制消除了SYN攻击的威胁, Cookie机制设立的主要用意 是将状态信息存储在客户端或者网络上,而非服务器内存中,它的使用将服务器资源预留的时间推迟到了 Cookie带回完整的鉴别信息后。这是一种简单有效的防御DoS攻击的方法。 3. SCTP编程 Linux内核从2