socket 学习笔记】的更多相关文章

记录下来,供自己学习! server.c #define _CRT_SECURE_NO_DEPRECATE #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WinSock2.h> #define BUF_SIZE 1024 char buf[BUF_SIZE], message[BUF_SIZE], file_name[BUF_SIZE]; void error_han…
..........(此处略去万万字)学习中曲折的过程不介绍了,直接说结果 我的学习方法,问自己三个问题,学习过程将围绕这三个问题进行 what:socket是什么 why:为什么要使用socket how:怎么使用 1. socket是什么 首先要了解网络通信协议,ISO模型的七个分层,分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层(具体每一层的作用,谷歌搜索),理解相关协议,重点理解TCP/IP,UDP协议 socket的英文原义是“孔”或“插座”.作为BSD UNIX的进…
小记:昨天咱们已经了解了Socket的通信原理,可是点对点的一次通信并不是我们想要的,那么今天那我们就继续学习异步通信,简单来说就是服务器端和客户端可以进行多次 互发信息的通信而不用担心通道会关闭.在介绍异步通信时,客户端和服务器端的连接和上面介绍的同步通信建立连接的方式是一样的,只是接收和发送数据的方式改变了! 1.什么是异步通信? 异步:客户端请求之后,不必等到服务器回应之后就可以发送下一条请求,并行运行. 2.同步与异步的区别? 同步:我叫你吃饭,你若暂时有事情我就一直在那等,不干别的事情…
小记:刚接触网络编程觉得网络是个神奇的东西,所以对它就很有兴趣,想了解下网络是如何进行进行数据传输的,那么开始第一天的学习吧!ReadyGo!!! 首先我们要了解一下几点内容: 1.网络中进程之间如何通信? 2.Socket是什么? 3.socket的基本操作 3.1.socket()函数 3.2.bind()函数 3.3.listen().connect()函数 3.4.accept()函数 3.5.read().write()函数等 3.6.close()函数 4.socket中TCP的三次…
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <winsock2.h> #define BUF_SIZE 1024 void error_handling(char* message); int main(int argc, char* argv[]) { WSADATA wsadata; SOCKET hServSock, hClntSock; SOCKADDR_IN…
server.c #include <stdio.h> #include <pthread.h> #include <semaphore.h> #include <arpa/inet.h> #include <unistd.h> #include <sys/socket.h> #include <stdlib.h> #include <string.h> #define BUF_SIZE 100 #define…
select.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #include <sys/time.h> #include <sys/socket.h> #define BUF_SIZE 100 void…
client.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #define BUF_SIZE 30 void error_handling(char* message); void read_routine(int sock,c…
TCP协议的Socket编程 Socket:英文中的意思是插座.两个Java应用程序可以通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket.Java中所有关于网络编程的类都位于java.net包. Socket用法详解 TCP编程需要使用的两个类:Socket类与ServerSocket类,分别用来实现双向连接的Client端和Server端. 说明:这里仅指TCP连接.因为UDP中没有Client和Server的概念.UDP只负责发送,不管是否发生成功. 建立连接时…
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) 参数一:地址簇 socket.AF_INET IPv4(默认) socket.AF_INET6 IPv6 socket.AF_UNIX 只能够用于单一的Unix系统进程间通信 参数二:类型 socket.SOCK_STREAM 流式socket , for TCP (默认) socket.SOCK_DGRAM 数据报式socket , for UDP socket.SOCK_RAW 原…
常用方法 创建套接字: socket()    绑定本机端口: bind()    建立连接: connect(),accept()    侦听端口: listen()    数据传输: send(), recv()    输入/输出多路复用: select()    关闭套接只:   closesocket() 1. socket方法 方法头文件 Windows下用 #include <WinSock.h>或 #include <WinSock2.h> Unix下用 #inclu…
1.socket介绍 我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程. 能够唯一标示网络中的进程后,它们就可以利用socket进行通信了. 什么是socket呢?我们经常把sock…
#include <sys/socket.h> --------------------------------------------------------------------------------- 1. int socket(int domain, int type, int protocol)    socket: return fd    domain: AF_INET(IPv4), AF_INET6(IPv6)    type: SOCK_DGRAM(udp), SOCK_…
gethostbyname.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <arpa/inet.h> #include <netdb.h> int main(int argc,char* argv[]) { int i; struct hostent* host; ) { printf(]); e…
写操作 1 #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> void error_handling(char* message); int main() { int fd; char buf[] = "let's go!"; fd = open("1.txt",O_CREAT|O_WRONLY); ) error…
本想着从hello word开篇,也确实写了相关学习笔记.各种原因吧,现在又着急写出作品,便作罢. 这里将记录一个node.js+socket.io的实时聊天程序.(当然我也是跟着网上各种教程资料学习,也是第一次写博客,请各位不喜勿喷,小缓本就没自信) 需求分析: 1:允许客户端有相同的用户名. 2:进入聊天室后可以看到当前在线的用户和在线人数. 3:用户上线或退出,客户端进行实时更新. 4:用户发送消息,实时接收. node的基础知识这里不再赘述,首先先学习一下socket.io服务端和客户端…
Hadoop源码学习笔记(4) ——Socket到RPC调用 Hadoop是一个分布式程序,分布在多台机器上运行,事必会涉及到网络编程.那这里如何让网络编程变得简单.透明的呢? 网络编程中,首先我们要学的就是Socket编程,这是网络编程中最底层的程序接口,分为服务器端和客户端,服务器负责监听某个端口,客户端负责连接服务器上的某个端口,一旦连接通过后,服务器和客户端就可以双向通讯了,我们看下示例代码: ServerSocket server = new ServerSocket(8111); S…
socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to current request socket client 2. socket.emit('message', "this is a test"); 3. // sending to all clients except sender 4. socket.broadcast.emit('messag…
题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人:但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括php的.C#的.甚至Node.js的,但一个是协议变化比较大,很多代码已经过时了,再就是有一些支持最新的标准,但是我想稍微改造一下,看人家源代…
本文转载至 http://blog.chinaunix.net/uid-16979052-id-3350958.html 分类:  原文地址:TCP协议和socket API 学习笔记 作者:gilbertjuly  • TCP包头 ACK为1时,确认序号有效,表示期望收到的下一个序号,是上次成功收到的字节序加1. SYN, FIN都占用一个序号. • TCP连接的建立 client通过connect()来建立TCP连接,connect()会发送SYN报文: server通过bind().lis…
本想着从hello word开篇,也确实写了相关学习笔记.各种原因吧,现在又着急写出作品,便作罢. 这里将记录一个node.js+socket.io的实时聊天程序.(当然我也是跟着网上各种教程资料学习,也是第一次写博客,请各位不喜勿喷,小缓本就没自信) 需求分析: 1:允许客户端有相同的用户名. 2:进入聊天室后可以看到当前在线的用户和在线人数. 3:用户上线或退出,客户端进行实时更新. 4:用户发送消息,实时接收. node的基础知识这里不再赘述,首先先学习一下socket.io服务端和客户端…
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io2实例:192.168.205.149 安装必要工具: yum install -y strace lsof pmap tcpdump 准备服务端代码 import java.io.*; import java.net.InetSocketAddress; import java.net.Serve…
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞sharding,现在方便多了,直接上cluster功能就行了,而且还支持节点动态添加.HA.节点增减后缓存重新分布(resharding). 下面是参考官方教程cluster-tutorial 在mac机上搭建cluster的过程: 一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http:…
[TOC] 前言 此为学习笔记汇总,如有纰漏之处,还望不吝指出,谢谢. 启动流程 调用settings_init()设定初始化参数 从启动命令中读取参数来设置setting值 设定LIMIT参数 开始网络Socket监听,也支持UDP 检查用户身份,不允许以root运行 如果有socketpath存在,开启UNIX本地连接,是Sock管道 如果以-d方式启动,调用daemon(), 创建守护进程 初始化item,event,状态信息,hash,连接,slab 如设置中managed生效,创建bu…
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redis学习笔记中Redis的按照方式按照后,Redis的配置文件是/etc/redis/6379.conf.下面是Redis2.8.9的配置文件各项的中文解释. #daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize ye…
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给client.基本的通信过程如下: Client: INCR X Server: 1 Client: INCR X Server: 2 Client: INCR X Server: 3 Client: INCR X Server: 4…
Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着不断获取资源的表示方式,客户端应用不断地在转变着其状态,所谓表述性状态转移(Representational State Transfer). 这一观点不是凭空臆造的,而是通过观察当前Web互联网的运作方式而抽象出来的.Roy Fielding 认为, “设计良好的网络应用表现为一系列的网页,这些网…
第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of a connection across a computer network,Sockets are often represented internally as simple integers, which identify which connection to use. 套接字是网络通信的…
孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified Date:Dec.11st 2010 HQU ================================================================================= 程序&进程&线程 ================================…