socket主机与从机通信流程伪代码

socket主机与从机通信流程伪代码,第1张

在服务端启动socket监听程序,客户端去连服务器的IP地址就行了!
举例(手写伪代码) :
在服务器端
Socket sock=new Socket("8080");
while(true){
data = sockgetInputStream();
//data 转成String型的数据str
if("msg"。equals(str)){
//todo
}
}
在客户端
public static void main(String[] args) {
Socket sock = new Socket("服务器IP", "8080");
BufferedOutputStream out = new BufferedOutputStream(sockgetOutputStream());
outwrite("msg"getBytes());
outflush();
}

Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上的数据的传递。在java中,有专门的socket类来处理用户的请求和响应。利用SOCKET类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在JAVA中如何利用socket进行网络编程。 在Java中Socket可以理解为客户端或者服务器端的一个特殊的对象,这个对象有两个关键的方法,一个是getInputStream方法,另一个是getOutputStream方法。getInputStream方法可以得到一个输入流,客户端的Socket对象上的getInputStream方法得到的输入流其实就是从服务器端发回的数据流。GetOutputStream方法得到一个输出流,客户端Socket对象上的getOutputStream方法返回的输出流就是将要发送到服务器端的数据流,(其实是一个缓冲区,暂时存储将要发送过去的数据)。 程序可以对这些数据流根据需要进行进一步的封装。本文的例子就对这些数据流进行了一定的封装(关于封装可以参考Java中流的实现部分)。 一、建立服务器类 Java中有一个专门用来建立Socket服务器的类,名叫ServerSocket,可以用服务器需要使用的端口号作为参数来创建服务器对象。ServerSocket server = new ServerS
感觉这样的提问没有什么意义
建议看看书,查查资料

在程序设计中 涉及数据存储和数据交换的时候 不管是B/S还是C/S模式 都有这样一个概念 这要求一台性能和配置都比较好的主机作为服务器 以满足数目众多的客户端进行频繁访问 但是对于一些数据交换的要求不主同 而且涉及到的通讯个体数目不多 如果还采用 一主机多客户机 的模式 便要求一台配置良好而且上安装了相关数据服务软件 这样会造成硬件和软件上的很多不必要的成本 这时Socket在点对点的平行对象之间的通讯的优势就就发挥出来了

其实对于Socket通讯来说 服务器和客户端的界定不像数据库服务器与客户端那样明显 甚至可以说Socket通讯里面的服务器和客户端只是相对的 因为网络通讯的对象基本上是处于平等层面的 只是为了方便对两台联网通讯的主机的描述才这样定义称谓的

由于在中Socket通讯的建立很容易 所以本文主要介绍一个Socket的比较典型的应用的流程 客户端向服务器发送请求 服务器接收到请求 并将服务器上的编码 发送到客户端 客户端得到数据后 再将这些数据写成文件 保存在客户端上

本文主要是对Socket的一个应用进行介绍 所以至于其原理在此没有深究 至于如何建立Socket还有如何实现网络的七层协议在此都没有进行相关研究和介绍 本文主要介绍如何实现一个用户想要的功能 即在两台主机之间进行通讯 通过网络来收发用户想要收发的数据

一 通讯流程图

[nextpage]  

三 测试socket的连接方法 telnet远程登录

用户可以同时对客户端和端的Socket程序进行编写 然后进行联调 也可以一次只编写一个 然后通过下面的方法来测试Socket连接

一般通过远程登录来测试连接是否成功 比如测试本机的 端口是否能连接成功

运行->cmd->telnet

在没有运行对本机的 端口进行不断侦听的程序时 会出现连接失败的提示

如果连接成功 则会d出另外一个窗口

如果在侦听线程里面设置断点 通常连接成功后 就会在

Socket sRecmdTemp = sRecvCmd Accept();

之后的语句上断点

附近演示程序的说明

使用VS 创建

主要实现的功能是 主机A向主机B发请求 主机B将D盘image目录下的image jpg image jpg文件编码发送到主机B 主机B再解码并写成文件到E盘的image目录下

为了方便调试 演示程序将服务器和客户端同时放在本机上 即localhost或者 即本程序最终实现的效果就是将本机的D 盘image目录下的两个指定名称的传送到E盘image目录下 所以在运行本程序前 先在D:/image目录下放置两张命名为 image jpg image jpg的文件

lishixinzhi/Article/program/net/201311/11802


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

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

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存