基于socket的网络编程程序,socket编程语言
如何利用Windows Sockets进行网络编程
Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。
Android 网络编程之Socket理解
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是 TCP 和 IP 两个协议,而是指一个由 FTP 、 SMTP 、TCP、 UDP 、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。所以不要简单认为TCP/IP协议就是我们的网络请求http拿点东西,它是一个统称。
socket 的诞生是为了应用程序能够更方便的将数据经由传输层来传输,所以它本质上就是对 TCP/IP 的运用进行了一层封装,然后应用程序直接调用 socket API 即可进行通信。那么它是如何工作的呢?它分为 2 个部分,服务端需要建立 socket 来监听指定的地址,然后等待客户端来连接。而客户端则需要建立 socket 并与服务端的 socket 地址进行连接。
有图可以看出Socket是应用层跟传输层的桥梁,应用层通过socket api提供的方法来让数据流转到传输层。
在Java Socket网络编程中,ServerSocket 用于什么程序?
在 Java Socket 网络编程中,服务器使用 ServerSocket 来侦听传入的客户端连接。当客户端连接到服务器时,ServerSocket 会在服务器上创建一个新的套接字以与客户端通信,并为客户端提供新的输入流和输出流,分别用于读取和写入。ServerSocket 继续侦听新的传入客户端连接,并继续为每个连接的新客户端创建新的套接字和流。
网络编程 socket
没有对recvbuf做清空设置啊。
char recvbuf[100];
memset(recvbuf, 0x00, 100);
recv(stockcon,recvbuf,100,0);
printf("%s\n",recvbuf);
closesocket(stockcon);
2018-04-23网络编程-概述-SOCKET-端口绑定-编码解码
计算机都遵守的网络通信协议叫做TCP/IP协议。
因为互联网协议包含了上百种协议标准,但是最重要的两个协议是TCP和IP协议,所以,大家把互联网的协议简称TCP/IP协议。是一组协议族。完成通信的规范。
四种分类法和其中分类法:
端口号:用来标记唯一一个进程(范围:0~65535)
为什么不用pid?——在一个操作系统上,pid绝对不相同,而且进程pid唯一,但在不同系统上,获取另一个系统的pid特别费劲;但是端口对应的程序是确定的,所以端口就是用来区分进程的
端口号只有整数,0~65535。能区分同一服务器所有进程
知名端口:大家都知道的默认的端口,比如百度,0~1023
动态端口:1024~65535之间
查看端口信息的命令:netstat - an
IP地址的作用:用来标记一台电脑在网络中的数字。
同一局域网中,IP地址不能相同
网络号用来分辨不同网络,主机号用来区分不同主机
ip地址:用来在网络中标记一台电脑的一串数字,比如192.168.1.1;在本地局域网上是惟一的。
什么是socket?
socket(简称 套接字 ) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:
它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的(能完成多个电脑进程间的通信)
例如我们每天浏览网页、QQ 聊天、收发 email 等等。
UDP快,不稳定
TCP慢,稳定
会变的端口号
说明:
每重新运行一次网络程序,上图中红圈中的数字,不一样的原因在于,这个数字标识这个网络程序,当重新运行时,如果没有确定到底用哪个,系统默认会随机分配
记住一点:这个网络程序在运行的过程中,这个就唯一标识这个程序,所以如果其他电脑上的网络程序如果想要向此程序发送数据,那么就需要向这个数字(即端口)标识的程序发送即可。
UDP绑定信息
一般服务性的程序,往往需要一个固定的端口号,这就是所谓的端口绑定
绑定的意义是使其不变 。
*一个电脑可以有多个IP地址
*单工:收音机 半双工:对讲机 全双工:电话
UDP和TPC(网络)都是全双工,同一时间能发能收
一般,接收方都需要绑定,发送方不需要绑定
绑定示例:
总结
一个udp网络程序,可以不绑定,此时操作系统会随机进行分配一个端口,如果重新运行次程序端口可能会发生变化
一个udp网络程序,也可以绑定信息(ip地址,端口号),如果绑定成功,那么操作系统用这个端口号来进行区别收到的网络数据是否是此进程的
*解包: