导航:首页 > 编程语言 > javaudpsocket编程

javaudpsocket编程

发布时间:2023-07-06 10:32:22

‘壹’ java中的socket编程是作什么的

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。
方法/步骤

Java中的socket编程 下面的部分将通过一些示例讲解一下如何使用socket编写客户端和服务器端的程序。 注意:在接下来的示例中,我将使用基于TCP/IP协议的socket编程,因为这个协议远远比UDP/IP使用的要广泛。并且所有的socket相关的类都位于java.net包下,所以在我们进行socket编程时需要引入这个包。

写入数据 接下来就是写入请求数据,我们从客户端的socket对象中得到OutputStream对象,然后写入数据后。很类似文件IO的处理代码。

打开服务器端的socket

读取数据 通过上面得到的socket对象获取InputStream对象,然后安装文件IO一样读取数据即可。这里我们将内容打印出来。

使用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应用程序、分布式系统和嵌入式系统应用程序等。

‘叁’ java网络编程:程序问题,接收不到数据

这是java网络编程里的UDPServer和UDPClient之间简单通宏仿信程序啊,等等我看看你的程序再说

你想要的是不是这种效果?


import java.net.*;


class UdpSend{

public static void main(String[] args)throws Exception{

//1.创建udp服务,通过DatagramSocket对象

DatagramSocket ds = new DatagramSocket(8888);//---这儿的端口号不要和UdpRece的一样


//2.确定数据,并封装成数据包。

//DatagramPacket(byte[] buf, int length, InetAddress address,


int port)

//构造数据报包,用正竖来将长度为 length 的包发送到指定主机上的


指定端口号。

byte[] buf = "udp shu ju lai le".getBytes();

DatagramPacket dp =

new DatagramPacket(buf,buf.length,InetAddress.getByName


("169.254.200.14"),10000);//----这儿的端口号保持与UdpRece一样


//3.通过Socket服务,将已有的数据包发送出去。通过send方法。

ds.send(dp);


//4.关闭资源

蔽清纤 ds.close();

}

}

最后想说,先运行UdpRece 再运行UdpSend,反过来UdpSend要运行2遍

‘肆’ java怎么实现JSON打包UDP

java实现JSON打包UDP cJSON支持在C程序中创建和解析JSON数据,其提供多种方法供C程序使用,最直接的是将cJSON.c和cJSON.h加入到C工程中

(1) QJsonObject用于在Qt中创建JSON对象

(2)数据传输通过UDP运行

‘伍’ 在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));

‘陆’ 我要一份用java网络编程写的点对点的两人聊天程序(TCP和UDP)

Server端:
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class TalkServer{
public static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
}catch(Exception e) {
System.out.println("can not listen to:"+e);
}
Socket socket=null;
try{
socket=server.accept();
}catch(Exception e) {
System.out.println("Error."+e);
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Client:"+is.readLine());
line=sin.readLine();
while(!line.equals("bye")){
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
server.close();
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}

Client端:
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1",4700);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine(); //从系统标准输入读入一字符串
while(!readline.equals("bye")){
os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine(); //从系统标准输入读入一字符串
}
os.close(); //关闭Socket输出流
is.close(); //关闭Socket输入流
socket.close(); //关闭Socket
}catch(Exception e) {
System.out.println("Error"+e); //出错,则打印出错信息
}
}
}

‘柒’ java socket实现两个客户段或多个客户端之间通信,该怎么解决

javasocket有两种方式。一种是UDP这个可以直连,不需要服务器。一种是TCP这个是肯定要能过服务器来通信的。所以你说的。链接建立完毕后不再通过服务器!这个可以实现,但会麻烦一些。1.先说一下简单的点的吧。用TCP的方式。你所有的消息都是发给服务器。包含你的IP及通信端口,及对方的IP及通信端口信息。当然这些是隐藏在数据报中的。这样由服务器来进行分发。2.你说的那种方式有点类似TCP与UDP混合。首先启动一个SERVER然后每一个客户端,先要登陆SERVER,并在server上记录下你的IP及通信端口信息,如果你要连接某一个客户端。先要向服务器发出一个申请,获得到方的IP及端口信息,然后进行UDP连接。连接上以后,就是直接发送息,不需要服务器了。javasocket的东西,以前做过一些,所以有思路,但没有现成的代码。有问题再联系。

‘捌’ java网络编程包含些什么

java网络编程通常包括三部分TCP/IP , UDP ,URL ;socket只是其中的一个套接字。web,jsp与上面一点关系也没有,上面是j2se的内容。下面则是j2ee内容。web是一个服务,而jsp是一种技术。实在找关系的话,web包括了jsp.

‘玖’ Java中基于UDP的非阻塞编程

configureBloging(false)
然后注册监视器,selector.open();
得到句柄;selectionKey key=(SelectionKey)selector.selected();

阅读全文

与javaudpsocket编程相关的资料

热点内容
如何将文件夹的内容发到微信 浏览:892
安卓手机emoji扁平怎么办 浏览:208
欧版三星s20怎么升级安卓11 浏览:104
我的世界服务器如何拉黑房子 浏览:480
linux服务器网络设置 浏览:106
在线编译代码怎么做 浏览:205
社会研究方法教程pdf 浏览:696
cad修改服务器地址 浏览:788
新手服务器装什么系统好 浏览:128
androidxmlui 浏览:713
星辰之恋在哪个app播 浏览:465
手机卡服务器出错误是怎么回事 浏览:536
cg编译器怎么设置 浏览:418
单片机教学视频哪个好 浏览:598
编译器错误了怎么办 浏览:77
看摩托车用什么app好 浏览:405
pdf转换excel在线转换 浏览:361
php多客服 浏览:746
语言编译程序如何分类 浏览:377
pdf下载哪个 浏览:77