java socket实现两个客户段或多个客户端之间通信,该怎么解决
javasocket有两种方式。一种是UDP这个可以直连,不需要服务器。一种是TCP这个是肯定要能过服务器来通信的。所以你说的。链接建立完毕后不再通过服务器!这个可以实现,但会麻烦一些。1.先说一下简单的点的吧。用TCP的方式。你所有的消息都是发给服务器。包含你的IP及通信端口,及对方的IP及通信端口信息。当然这些是隐藏在数据报中的。这样由服务器来进行分发。2.你说的那种方式有点类似TCP与UDP混合。首先启动一个SERVER然后每一个客户端,先要登陆SERVER,并在server上记录下你的IP及通信端口信息,如果你要连接某一个客户端。先要向服务器发出一个申请,获得到方的IP及端口信息,然后进行UDP连接。连接上以后,就是直接发送息,不需要服务器了。javasocket的东西,以前做过一些,所以有思路,但没有现成的代码。有问题再联系。
Java中Socket 现在还用的多么
依然有,这个问题比较空泛,socket是比较底层的,然后往上是ftp和http协议通信
这三个都有用,用的地方不同,socket还有两种方式:一种udp(无连接),一种tcp/ip(有链接)c,c#c++等基本很多语言都有socket通信,不同语言之间只要你喜欢都能用socket(因为协议一样)
java Socket通信原理
具体如下:
首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层。其中UDP是一种面向无连接的传输层协议。UDP不关心对端是否真正收到了传送过去的数据。
如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用在分组数据较少或多播、广播通信以及视频通信等多媒体领域。
在这里我们不进行详细讨论,这里主要讲解的是基于TCP/IP协议下的socket通信。
socket是基于应用服务与TCP/IP通信之间的一个抽象,他将TCP/IP协议里面复杂的通信逻辑进行分装。
服务端初始化ServerSocket,然后对指定的端口进行绑定,接着对端口及进行监听,通过调用accept方法阻塞。
此时,如果客户端有一个socket连接到服务端,那么服务端通过监听和accept方法可以与客户端进行连接。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
在javasocket网络编程中,开发基于udp协议的程序使用的套接字有哪些
一、 填空题
___ IP地址____用来标志网络中的一个通信实体的地址。通信实体可以是计算机,路由器等。
统一资源定位符URL是指向互联网“资源”的指针,由4部分组成:协议、存放资源的主机域名、__端口___和资源路径和文件名。
URL 是统一资源定位器的简称,它表示Internet上某一资源的地址。
在Socket编程中,IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用 端口 来区分这些应用程序。
在Java Socket网络编程中,开发基于TCP协议的服务器端程序使用的套接字是 ServerSocket 。
在Java Socket网络编程中,开发基于UDP协议的程序使用的套接字是 DatagramSocket 。
二、 选择题
1.以下协议都属于TCP/IP协议栈,其中位于传输层的协议是(AD)。(选择二项)
A TCP
B.HTTP
C.SMTP
D.UDP
2.以下协议中属于TCP/IP协议栈中应用层协议的是(A)。(选择一项)
A HTTP
B.TCP
C.UDP
D.IP
3.以下说法中关于UDP协议的说法正确的是(AD)。(选择二项)
A.发送不管对方是否准备好,接收方收到也不确认
B.面向连接
C.占用系统资源多、效率低
D.非常简单的协议,可以广播发送
4.在基于TCP网络通信模式中,客户与服务器程序的主要任务是(BC)。(选择二项)
A 客户程序在网络上找到一条到达服务器的路由
B.客户程序发送请求,并接收服务器的响应
C.服务器程序接收并处理客户请求,然后向客户发送响应结果
D.如果客户程序和服务器都会保证发送的数据不会在传输途中丢失
5.在Java网络编程中,使用客户端套接字Socket创建对象时,需要指定(A)。(选择一项)
A 服务器主机名称和端口
B.服务器端口和文件
C.服务器名称和文件
D.服务器地址和文件
6.ServerSocket的监听方法accept( )方法的返回值类型是(A )。(选择一项)
A.Socket
B.Void
C.Object
D.DatagramSocket
7.Java UDP Socket编程主要用到的两个类是(BD)。(选择二项)
A UDPSocket
B.DatagramSocket
C.UDPPacket
D.DatagramPacket
8.在使用UDP套接字通信时,常用(D)类把要发送的信息打包。(选择一项)
A String
B.DatagramSocket
C.MulticastSocket
D.DatagramPacket
三、 判断题
1. Socket是传输层供给应用层的编程接口,是应用层与传输层之间的桥梁 。( T )
2. TCP/IP传输控制协议是Internet的主要协议,定义了计算机和外设进行通信的规则。TCP/IP网络参考模型包括七个层次:应用层、会话层、表示层、传输层、网络层、链路层和物理层。( F )
3. TCP协议一种面向连接的、可靠的、基于字节流的通信协议 。HTTP、FTP、TELNET、SMTP 都是基于TCP协议的应用层协议。( T )
4. UDP协议是一种面向无连接的、可靠的、基于字节流的传输层通信协议,该协议占用系统资源多、效率较低。( F )
四、 简答题
1.TCP/IP协议栈中,TCP协议和UDP协议的联系和区别?
2.简述基于TCP的Socket编程的主要步骤。提示:分别说明服务器端和客户端的编程步骤。
3.简述基于UDP的Socket编程的主要步骤。提示:分别说明服务器端和客户端的编程步骤。
五、 编码题
1.使用基于TCP的Java Socket编程,完成如下功能:
1) 要求从客户端录入几个字符,发送到服务器端。
2) 由服务器端将接收到的字符进行输出。
3) 服务器端向客户端发出“您的信息已收到”作为响应。
4) 客户端接收服务器端的响应信息。
提示:
服务器端:PrintWriter out =new PrintWriter(socket.getOutputStream(),true);
客户端:BufferedReader line=new BufferedReader(new InputStreamReader(System.in));