通信,用一种高大上的方法解释,那是服务器与客户端之间的通信,或是客户端与客户端之间的互联,其实说白了 ,就是两个程序通过某种渠道在发送信息。
在实现通信之前,我们首先要清楚通信的流程。当一台机器要与另一台机器连接时,ip地址就是它们各自的标识,以便于被发现或连接。在连接到某机器之后,还需要找到希望连接程序的端口号,这样才能准确的连接到某一个程序进行通信。[注]:端口号要在0~65535之间。
我们先写一个最简单的通信程序,让命令行充当客户端,那就只需要写一个可接受和发送消息的服务器了。这时需要思考的是服务器如何工作:首先要有一个服务器对象,让一个Socket对象等待客户端连接,连接后获取输入输出流,然后就可以用输出流来发送消息给客户端,用输入流读取客户端发来的消息,这样简单的通信就完成了,最后只要关闭连接即可。
//创建一个绑定在指定端口上的服务器对象 ServerSocket ss = new ServerSocket(port); System.out.println("服务器连接成功"+port); //让对象进入等待状态 Socket client = ss.accept(); //从连接上获取输入输出流 OutputStream out = client.getOutputStream(); InputStream ins = client.getInputStream(); String s = "hello!"; //获取该字符串的字节 byte[] b = s.getBytes(); String src = new String(b); System.out.println("生成的字符串是"+src); //用输出对象发送 out.write(b); //强制输出 out.flush(); int in=0; while(in!=13){ in=ins.read(); System.out.println("读到的是"+in); } System.out.println("已退出"+in); //关闭连接 client.close();
当然,这样的代码会报错,试想,如果连接过程中突然断网,那不属于我们可控范围内,所以要用try,catch解决这个异常。
这时我们需要做的就是打开命令提示符,输入telnet localhost 端口号,localhost代表的就是本机的ip地址,telnet命令使我们的计算机充当客户机去连接我们写的服务器,这样就实现了最基本的通信。
相关推荐
串口通信简单实例源代码详解 串口通信是计算机系统中的一种常见的通信方式,以异步方式传送数据,偶校验,一位结束位,传输的数据传输速率为9600bit/s。每个数据帧包含10Byte信息,1Byte作为帧起始标志,8Byte数据...
【Java通信简易的QQ源代码】是一个学习和实践网络通信技术的绝佳实例,它通过Java编程语言实现了在同一个局域网内进行IP通信的基本功能。这个简易的“山寨QQ”项目,虽然不具备完整QQ应用的所有特性,但它涵盖了网络...
一个简单的linux串口通信源代码,含串口的各种设置。
2. **TCP/IP协议**:传输控制协议/因特网协议(TCP/IP)是互联网上最广泛使用的通信协议。TCP提供面向连接、可靠的通信,而IP则负责数据包的路由。在Visual C++中,通常使用Winsock库实现TCP/IP通信。 3. **UDP协议...
水声通信仿真代码,包括时间反转镜均衡,各种调制解调,信道仿真扥等
在这个"很简单的一个socket双向通信小程序源代码"中,我们可以预期看到的是如何使用Socket实现客户端和服务器之间的双向通信。Socket通信通常涉及TCP(传输控制协议)或UDP(用户数据报协议),但鉴于“双向”特性,...
在这个"socket简单服务器客户端通信测试代码"中,我们将探讨如何利用Socket进行基本的服务器和客户端之间的数据交互。 首先,我们要理解Socket的工作原理。Socket可以看作是两台计算机之间通信的端点,一个Socket...
在这个"串口通信实例源代码C#"中,我们能看到如何在Visual Studio 2010环境下使用C#进行串口通信的实践。 首先,我们需要了解`SerialPort`类。这个类是`System.IO.Ports`命名空间的核心,提供了打开、关闭串口,...
RS232是最早的串行通信标准之一,定义了电压水平、接口引脚功能以及通信参数。它支持全双工通信,即数据可以同时在两个方向上传输。在51单片机上,我们通常会使用TX(发送)和RX(接收)引脚来实现RS232通信。 在...
7. **开发工具**:开发MC9S12XS128和LIN通信通常需要IDE(如CodeWarrior)、仿真器或JTAG接口,以及如LINalyzer之类的总线分析工具来测试和调试。 学习这个源码可以帮助初学者理解LIN协议的工作原理,掌握MC9S12XS...
在移动应用开发中,尤其是在Android平台上,设备之间的通信是非常重要的功能之一。利用WiFi进行设备间的通信不仅可以实现数据的快速传输,还可以构建出多种多样的应用场景,如远程控制、即时消息等。本文将详细介绍...
本文将详细介绍Windows下的Socket通信代码,包括客户端和服务器端的实现,并适合初学者学习。 首先,我们要理解Socket的基本概念。Socket可以看作是网络上的进程间通信的端点,它定义了通信双方如何建立连接、交换...
本资源是一个关于串口通信的程序源代码,采用C++语言编写,已经过编译并能够正常运行在PC上。 在C++中实现串口通信,通常需要利用操作系统提供的API或第三方库来访问串口。例如,在Windows系统中,可以使用Windows ...
本资源包提供了有关进程通信的教程和示例代码,对于初学者来说是非常宝贵的参考资料。 Linux作为一款开源操作系统,其内核支持多种进程通信机制,包括管道(Pipe)、FIFO(命名管道)、信号量(Semaphore)、共享...
匿名管道是最早出现的进程间通信方式,主要用于父子进程之间或兄弟进程之间的通信。在C语言中,通过`pipe()`函数创建一个匿名管道,它由两个文件描述符(读端和写端)组成。数据只能单向传输,通常是从父进程写入,...
3. **编写通信代码**:在主机和从机上编写相应的软件代码,处理数据发送和接收,以及错误检测和恢复。 4. **测试与调试**:使用工具如Keil和Proteus进行编译、调试和仿真,确保通信的正确性。 5. **实机测试**:在...
本书"详解MATLAB Simulink通信系统建模与仿真"显然是一本深入探讨这一主题的专业著作,配合随书源代码,读者可以更加直观地理解和学习通信系统建模的过程。 1. **Simulink基础**:Simulink是一种基于图形的建模工具...
本资源提供了一个简单的UDP通信的C++源代码示例,非常适合初学者理解和实践网络编程的基础概念。 首先,我们需要理解UDP的基本特性。UDP是一种无连接的、不可靠的传输协议,它不保证数据包的顺序到达或错误检查,...
在这个“串行通信源代码”中,开发者使用了MSComm控件来实现全双工异步串行通信。MSComm控件是Microsoft提供的一种用于简化串行通信编程的工具,它封装了许多底层的串口操作,使得开发者无需深入理解串行通信的细节...
两份modbus通信的vc源代码,包括简易实现的例子和添加crc校正功能的例子