目录 1.主机到网络层协议:以太网协议 2.IP协议 3.网际控制报文协议(ICMP) 4.传输控制协议(TCP) 5.用户数据报文协议(UDP) 6.流控制传输协议(SCTP) 7.地址解析协议(ARP)   联网的各个终端之间能否进行交互的软件基础是网络协议栈,目前主流的网络协议栈是TCP/IP协议栈. 1.主机到网络层协议:以太网协议 主机到网络层主要为IP协议和ARP协议提供服务.发送和接收网络数据报.本层中由于要实现跨网和跨设备的互通,有很多的实现方式,这里我们只关注以太网的实现方式.…
在编程的时候需要加上对应pthread开头的头文件,gcc编译的时候需要加了-lpthread选项 第三个参数是线程的入口参数,函数的参数是void*,返回值是void*,第四个参数传递给线程函数的参数 如果创建线程失败,返回值是一个错误码,错误码通过返回值返回,我们要进行错误检查就检查函数的返回值 函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int pthread_create(pthread_t *restri…
经java网络编程(1)网络体系结构及通信协议我知道IP协议相应于网络层.TCP协议相应于传输层.而HTTP协议相应于应用层, 三者从本质上来说没有可比性 TPC/IP协议是传输层协议,主要解决数据怎样在网络中传输. 而HTTP是应用层协议,主要解决怎样包装数据. socket是对TCP/IP协议的封装和应用(程序猿层面上). 三者关系 总的来说 传输层的TCP是基于网络层的IP协议的 应用层的HTTP协议又是基于传输层的TCP协议的 Socket本身不算是协议,它仅仅是提供了一个针对TCP或者…
from http://blog.csdn.net/feiyinzilgd/article/details/5894300 Linux网络编程中,socket的选项很多.其中几个比较重要的选项有:SO_LINGER(仅仅适用于TCP,SCTP), SO_REUSEADDR. SO_LINGER 在默认情况下,当调用close关闭socke的使用,close会立即返回,但是,如果send buffer中还有数据,系统会试着先把send buffer中的数据发送出去,然后close才返回. SO_L…
网络编程中最重要的概念就是连接取向(connection-oriented)和无连接(connectionless)协议.虽然本质.两者之间的区别是不难理解,编程的人来说,却是个非常easy混淆的问题. 这个问题与上下文有些关联:非常显然.假设两台计算机要进行通信,就必须以某种形式"连接"起来.那"无连接通信"又是什么意思呢? 答案是:面向连接和无连接指的都是协议. 也就是说,这些术语指的并非物理介质本身.而是用来说明怎样在物理介质上数据传输的.面向连接和无连接协议…
计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来, 在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换.   TCP/IP协议栈   应用层 传输层 网络层 网络接口层   大多数应用程序员仅仅涉及应用层和传输层   网络通信三要素   IP地址:InetAddress         网络中设备的标识,不易记忆,可用主机名 要想让网络中…
在socket系统调用中,如何完成三次握手和四次挥手: SOCK_DGRAM即UDP中的connect操作知识在内核中注册对方机器的IP和PORT信息,并没有建立连接的过程,即没有发包,close也不发包). 而SOCK_STREAM对应如下: connect会完成TCP的三次握手,客户端调用connect后,由内核中的TCP协议完成TCP的三次握手: close操作会完成四次挥手. 三次握手对应的Berkeley Socket API: 可以看出和连接建立相关的API有:connect, li…
(1) 通用socket地址 socket网络编程接口中表示socket地址的是结构体sockaddr,其定义如下: #include<bits/socket.h> struct sockaddr { sa_family_t sa_family; char sa_data[14]; } (2)新的通用socket地址结构体 #include<bits/socket.h> struct sockaddr_storage { sa_family_t sa_family; unsigne…
一.概念介绍 网络程序分为服务端程序和客户端程序.服务端即提供服务的一方,客户端为请求服务的一方.但实际情况是有些程序的客户端.服务器端角色不是这么明显,即互为Linux培训 客户端和服务端. 我们编写网络程序时,一般是基于TCP协议或者UDP协议进行网络通信的.兄弟连Linux培训小编整理: TCP:(Transfer Control Protocol)传输控制协议是一种面向连接的协议,当我们的网络程序使用这个协议的时候,网络可以保证我们的客户端和服务端之间的传输是可靠的. UDP:(User…
socket错误码: EINTR: 阻塞的操作被取消阻塞的调用打断.如设置了发送接收超时,就会遇到这种错误. 只能针对阻塞模式的socket.读,写阻塞的socket时,-1返回,错误号为INTR.另外,如果出现EINTR即errno为4,错误描述Interrupted system call,操作也应该继续.如果recv的返回值为0,那表明连接已经断开,接收操作也应该结束. ETIMEOUT: .操作超时.一般设置了发送接收超时,遇到网络繁忙的情况,就会遇到这种错误. .服务器做了读数据做了超…