服务端之间通讯,有哪些主流的方法

服务端之间通讯,有哪些主流的方法,第1张

答:服务端之间通讯,有两类服务端,多对一的关系,分别部属在多台无理服务器的tomcat中。>首先,为了便于理解,我们一般把网络分为多个层次,这个层次的概念是很重要的基础概念,你可以参考阅读经典的谢希仁老师翻译的《计算机网络》。 在进程之间的网络通信一般都是在“网络层”即IP层,我们编写程序一般也都是基于这个层次或者这个层次之上的传输层或者应用层。语言(实际上是 *** 作系统和库函数)提供了封装好的函数,让我们可以不用关心链路层以及物理层的细节。 下面逐一回答你的问题: 1)初始化网络环境是什么意思,有什么作用? 为了建立通信连接,我们需要明确当前的网络环境是怎样的,因为和单机系统的进程通信不同,网络进程间通信比较复杂,而且 *** 作系统支持的网络协议也会很多,不同协议的工作方式不同,地址格式也不同。为了解决多重协议的识别问题,我们必须引入一些用于区分的概念并对其初始化。 2)套接字的意思和作用是什么? 套接字提供了对网络连接的一系列封装——虽然你可以自己写,但完全没有必要不是么?它根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源。例如TCP/IP的socket提供三种类型套接字(流式、数据报、原始),分别对应面向连接的服务(例如FTP)、无连接服务(例如NFS)和较底层的连接服务(例如IP或者自定义协议),你可以基于套接字提供的封装比较方便的实现网络连接服务。 在IP层次以上网络通信的基本原理和电话或者电报的基本原理是非常相近的。TCP连接类似电话,UDP连接类似电报。 下面我以一些代码片段(注意是帮助理解的片段,不能编译执行)简单地对其进行类比: fd = socket(AF_INET, SOCK_STREAM, 0); addresssin_family = AF_INET; addresssin_addrs_addr = htonl(INADDR_ANY); addresssin_port = htons(1234); address_len = sizeof(address); //这就是在初始化网络环境,类似于你朋友买了一个电话,同时到电信公司申请了号码,然后登记的分机是1234 bind(fd, (struct sockaddr )&address, address_len); //好了,这是做了一个bind(绑定),类似于电信公司把电话号码和你朋友家的哪个端口线连上了。 listenfd = listen(fd, 64) while(1){ 一系列等待客户端的 *** 作,从略 } //这里在服务器端一般会有一个无限循环,服务器会一直等待来自客户端的消息,类似于你朋友一直在等待你的电话。客户端,类似的也有买电话(socket创建)和初始化,我就不写了,预先设定好你要拨打的分机号码是1234 rtval = connect(fd, (struct sockaddr )&address, address_len); //上面的语句表示开始拨打电话了: //如果你的朋友接了电话,通话建立了(上面语句的返回值rtval不为-1),你就可以讲话: writen(fd, (void )data, strlen(data)); //对方讲话,你听: len = readline(fd, (void )data2, 100); //讲完了,挂电话,类似于下面的语句: close(fd); 整体情况大概就是这样,所以可以看到计算机的实现和日常生活是很接近的!希望这可以帮助你理解网络通信。 最后建议阅读TCP/IP详解之卷2(实现),里面很多例子不长但很经典,对于打好基础很有帮助。

服务器和客户端在通信之前会先建立TCP连接,就是常说的三次握手过程。
TCP连接建立之后,服务器和客户端就可以互通数据了,可以通过>如果只是两个客户端和一个服务器,可通过服务器转发即可,两个客户端连接到服务器,服务器把从A接收到的发给B,把从B接收到的发给A即可,如果要做成多个客户端的,则要给各个客户端分配ID,服务端好根据各个客户端和消息要转发送给客户端的ID来确定消息发送对象。

ftp客户和服务器间传递ftp命令时,使用的连接是tcp。

FTP协议是基于传输层TCP协议的。FTP的控制连接使用端口21,用来传输控制信息(如连接请求、传送请求等),数据连接使用端口20,用来传输数据。

控制连接的特点是:

1、以客户一服务器方式建立。

2、服务器以被动方式打开用于FTP的端口21,等待客户的连接。

3、客户则以主动方式打开TCP端口21,来建立连接。

4、控制连接始终等待客户与服务器之间的通信。该连接将命令从客户传给服务器,并传回服务器的应答。由于命令通常是由用户键入的,所以IP对控制连接的服务主要责任就是“最大限度地减小迟延”。

扩展资料:

FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

服务器监听。客户连接到服务器后,死循环里READ并处理 那个连接,不要断开,同时可以发送信息 服务器里 做处理信息 这东西如果你从SOCKET开始做很复杂。你不但要了解套接字网络连接方法,还要了解套接字阻塞机制,还有读写阻塞机制还要处理读写超时处理,防DDOS攻击处理,还要了解异步处理SELECT或POLL。而且这种底层的程序用C#做很不值得,。如果你想从底层做,并且做的很好就用C写,并且要求效率。 如果不要求高效率那就直接用IIS做成WEB服务,配合数据库做,然后用客户端调用WEB服务

客户端一般通过socket与服务端通信,在C#里有很多建立通信的方法的,感兴趣的话你可以去搜一下“C#网络编程”,会有很多资料给你看的。
QQ的东西很多都是C++做的,QQ游戏可能是MFC,具体的东西还得问腾讯


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12994788.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-29
下一篇2025-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存