基于Socket的JAVA网络编程
事实上,所谓的网络编程,简单来说就是在两台计算机上实现数据的交换,以达到彼此通信的目的,而在述说Socket之前,我想先理解一下JAVA Socket底层是怎样基于TCP/IP实现的。
1.理解TCP/IP协议组
TCP/IP模型有四层结构:应用层、传输层、网络层、链路层。而TCP/IP协议是一组包括TCP协议,IP协议,UDP协议等的协议组。 其中IP协议是位于网络层的,TCP和UDP协议位于传输层。通过IP协议可以使两台计算机使用同一种语言,从而允许Internet上连接不同类型的计算机和不同操作系统的网络。IP协议只保证计算机能够接收和发送分组数据。而TCP和UDP协议则是两种传输数据流的方式。
2.传输层的TCP与UDP协议的区别
那他们有什么区别呢?区别就是TCP协议时面向连接的,传输前双方要建立一条虚拟的通道,就好比打电话,只有电话被接通时,二者才可以通话;而UDP是一种无连接协议,它只需要知道目的地是什么就可以了,而不用管信息能否能否到达或者信息是否完整,就好比给别人发信息,即便对方已经停机,信息依然能发出去。既然UDP如此不可靠,那它的优势在哪呢?他的优势在于对于一些小的数据在传输时他的传输速度要比TCP协议快,只要数据大小每次不超过64K即可。我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常时,“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。而且JAVA Socket就是基于TCP协议实现的数据传输。
3.利用Socket建立连接
创建两台机器的连接利用Socket在理解上比较简单,只需创建一个服务器和一个客户端,并让服务器进入等待客户机来连接的状态,代码示例如下
服务器:
//创建一个绑定在指定端口上的服务器对象
java.net.ServerSocket server=new ServerSocket(port);
System.out.println("服务器创建成功"+port+"等待来连接。。。");
//让服务器进入循环等待状态(阻塞) 并且一直等待其他客户机来连接
while(true){
java.net.Socket client=server.accept();
System.out.println("来主动连接的客户机"+client.getInetAddress().toString());
}
客户机:
//创建客户端对象
Socket client=new Socket("localhost",port);
建立连接之后,从Socket连接对象上获取输入输出流。
代码如下:
java.io.OutputStream outs=client.getOutputStream();
java.io.InputStream ins=client.getInputStream();
得到输入输出流之后,便可在像管道一样的流中开始传输数据了,如此便可实现基于JAVA Socket的简单通信啦!!!
分享到:
相关推荐
掌握基于SOCKET的网络编程方法。 基于JAVA语言,编写一个网络应用程序。 一、实验目的 通过套接字编程结合swing框架编写即时通信工具。在知道对方ip的前提下能够发送信息给对方,并得到发送的反馈,对方得到收到的...
基于socket java 语言网络通讯机制和程序设计
基于java socket网络编程实现的五子棋游戏,可多人在线玩耍,聊天
基于Socket的java网络编程, Socket通讯的过程 Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server...
基于java socket网络编程实现的简单模拟qq聊天的程序,可实现并发聊天,分为服务器和客户端两个部分
用java编写的基于socket的进程间通信程序 客户端服务器聊天小程序
Java中基于Socket的网络编程
基于Socket的Java网络编程集粹,相当经典。
本文讨论了如何利用java技术开发聊天室系统,基本满足了结构化、界面友好、速度快、安全性以及稳定性等特点。 系统着重研究并实现了网络应用的部分。根据实现的情况看,具有较友好的聊天界面生成效果,以及流畅的...
用java编写的基于UDP和TCP两种协议编写的Socket(网络编程)案列
Java中基于TCPIP的Socket编程
基于socket编写的java 多用户五子棋小游戏 | java 源码
Java网络编程 基于Socket的编程
Java实现的聊天室,使用TCP协议,可以进行一对一、一对多的聊天,比较简陋,没有用户界面,输入输出都是在控制台。
基于Java Socket网络编程的基础性应用研究
基于Java Socket网络编程的基础性应用研究.pdf
基于java socket网络编程实现的五子棋游戏,可多人在线玩耍。下载后,把源码复制到项目,便可直接编译运行
基于Java--Socket-网络编程.doc
网络通信协议,网络通信基础知识,socket网络编程的一些基础知识,Socket网络编程学习笔记,网络编程总结,2011-学习资料大全:java_socket编程,学习网络编程的十个步骤,socket编程入门(经典版),Unix_网络编程...