「javaudp试题」javaudp通信

博主:adminadmin 2022-12-20 14:42:08 86

本篇文章给大家谈谈javaudp试题,以及javaudp通信对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA UDP聊天程序问题 给100分!

public void run() /* 用于被调用的接口run方法 */

{

while (true)

{

try

{

byte[] buf = new byte[1024];/* 接收端程序,设置BUF数组长度为1024位 */

DatagramPacket dp = new DatagramPacket(buf, buf.length);/* 创建接收数据报的实例 */

ds.receive(dp);

lst.add("他说:" + new String(buf), 0);

} catch (IOException ex)

{

}

}

}

======================

线程的run方法改成上面这样就可以了,原因是因为接收端每次循环都是使用的同一个buf,而buf没有清空,所以导致每次接收都只更新前面一小段信息,后面的信息没有改变。

关于java中UDP的问题

你没有贴出代码,我估计是你使用固定长度取的缓冲区的数据

你可以参考下面的代码改一下试试

public class Server

{

static final int size = 10240;

static String usrDir = System.getProperty("user.dir");

static String DiskInfoXML = usrDir + "disk_info.xml";

public static void main(String argv[])

{

DatagramSocket sd = null;

DatagramPacket packet = null;

String diskRequest;

try

{

sd = new DatagramSocket(7777); // 建立socket连接

System.out.println("Server Started ...");

while(true) // 一直监听

{

byte[] buffer = new byte[size];

packet = new DatagramPacket(buffer, size);

sd.receive(packet);

byte[] data = packet.getData();

int port = packet.getPort();

int len = packet.getLength();

InetAddress address = packet.getAddress();

diskRequest = new String(buffer); // 打印获取内容

System.out.println("diskRequest = \n" + diskRequest);

FileOutputStream fout = new FileOutputStream(DiskInfoXML);

fout.write(buffer, 0, len); // 写进文件

fout.close();

System.out.println(len + " bytes received");

}

}

catch (SocketException e)

{

System.out.println(e.toString());

}

catch (IOException e)

{

System.out.println(e.toString());

}

}

}

急!!求一套Java试题答案

单选:

1.D 2.B 3.B 4.B 5.D 6.B 7.D 8.A

多选:

1.BC 2.D(B肯定不对) 3.ABCD 4.BCDE;

判断对错:

1.对 2.对 3.对 4.对 5.对 6.错 7.错 8.错 9.错

java编程 利用UDP方式,客户端向服务器发送三边值,服务器,根据三边值计算三角形面积返回客户端

创建两个类 分别添加main方法 一个作为server类一个作为client类

客户端先发送再接收  服务器端先接收再发送

下面给你一个server和client的例子 你在基础上改一下就行了

client发送的时候发送三边值  server接收后 写一个计算三角形面积的函数 把接收到的三边值传入函数计算出结果作为数据返回到client端

/**

 *UDPServer

 */

import java.io.*;

import java.net.*;

class UDPServer{

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

        DatagramSocket  server = new DatagramSocket(5050);

        byte[] recvBuf = new byte[100];

        DatagramPacket recvPacket 

            = new DatagramPacket(recvBuf , recvBuf.length);

        server.receive(recvPacket);

        String recvStr = new String(recvPacket.getData() , 0 , recvPacket.getLength());

        System.out.println("Hello World!" + recvStr);

        int port = recvPacket.getPort();

        InetAddress addr = recvPacket.getAddress();

        String sendStr = "Hello ! I'm Server";

        byte[] sendBuf;

        sendBuf = sendStr.getBytes();

        DatagramPacket sendPacket 

            = new DatagramPacket(sendBuf , sendBuf.length , addr , port );

        server.send(sendPacket);

        server.close();

    }

}

/**

 *UDPClient

 */

import java.io.*;

import java.net.*;

class UDPClient{

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

        DatagramSocket client = new DatagramSocket();

        

        String sendStr = "Hello! I'm Client";

        byte[] sendBuf;

        sendBuf = sendStr.getBytes();

        InetAddress addr = InetAddress.getByName("127.0.0.1");

        int port = 5050;

        DatagramPacket sendPacket 

            = new DatagramPacket(sendBuf ,sendBuf.length , addr , port);

        client.send(sendPacket);

        byte[] recvBuf = new byte[100];

        DatagramPacket recvPacket

            = new DatagramPacket(recvBuf , recvBuf.length);

        client.receive(recvPacket);

        String recvStr = new String(recvPacket.getData() , 0 ,recvPacket.getLength());

        System.out.println("收到:" + recvStr);

        client.close();

    }

}

JAVA网络编程基础试题!300分!请一定要帮我做一下,两个解答题。一个编程题,重点是编程题,谢谢了!!

2.百度百科搜索很详细

3.附件中的代码仅供参考

TcpSocketServerDemo.java

package yaoshun.InetAddress;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

/*

 * 客户端:TCP服务器端

 */

public class TcpSocketServerDemo {

private ServerSocket serverSocket;// 服务器连接

private int port; // 服务器监听端口

private ListSocket sockets;

private int ranNumber;

/**

 * 服务器结束的标志

 */

public boolean ISEND;

public TcpSocketServerDemo(int port) {

this.port = port;

serverSocket = null;

sockets = new ArrayListSocket();

ranNumber = new Random().nextInt(50);

}

/*

 * 启动服务器

 */

public void starServer() {

try {

// 第一步:建立服务器连接(绑定监听端口)

serverSocket = new ServerSocket(port);

System.out.println("姚舜的服务器已经启动...");

Socket socket;// 客户端连接(如果建立连接时,本机网络不容或服务器程序未启动则会抛出异常)

ServerThread serverThread;

Thread t2;

while (!ISEND) {

// 第二步:监听端口(获取客户端连接)

socket = serverSocket.accept();

if (ISEND) {

while (!socket.isClosed()) {

socket.close();

Thread.sleep(100);

}

} else {

sockets.add(socket);

serverThread = new ServerThread(this, socket);

t2 = new Thread(serverThread);

t2.start();

}

}

for (Socket s : sockets) {

s.close();

}

serverSocket.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

TcpSocketServerDemo tDemo = new TcpSocketServerDemo(1000);

tDemo.starServer();

}

/**

 * 校验

 * 

 * @param i

 * @return

 */

public int check(int i) {

if (i  ranNumber) {

return -1;

} else if (i  ranNumber) {

return 1;

}

return 0;

}

}

/**

 * 服务端处理线程

 *

 */

class ServerThread implements Runnable {

private TcpSocketServerDemo tDemo;

private Socket socket;

private DataInputStream dis;// 输入流(读取数据)

private DataOutputStream dos;// 输出流(发送数据)

public ServerThread(TcpSocketServerDemo tDemo, Socket socket) {

super();

this.tDemo = tDemo;

this.socket = socket;

try {

dis = new DataInputStream(socket.getInputStream());

dos = new DataOutputStream(socket.getOutputStream());

} catch (IOException e) {

e.printStackTrace();

}

}

public void run() {

String message = "";

int i;

int index = 0;

int result = 0;

while (!message.equals("Quit")  index  5) {

try {

message = dis.readUTF();

} catch (IOException e) {

e.printStackTrace();

}

try {

i = Integer.parseInt(message);

result = tDemo.check(i);

if (result == 1) {

dos.writeUTF("数字大了");

} else if (result == -1) {

dos.writeUTF("数字小了");

}

if (result == 0) {

dos.writeUTF("猜中了");

break;

}

} catch (NumberFormatException | IOException e) {

continue;

}

index++;

}

try {

dis.close();

dos.close();

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

TcpSocketClientDemo.java

package yaoshun.InetAddress;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.Socket;

import java.net.UnknownHostException;

import java.util.Scanner;

/*

 * 演示类:TCP客户端

 */

public class TcpSocketClientDemo {

private Socket socket;// 客户端连接(如果建立连接时,本机网络不容或服务器程序未启动则会抛出异常)

private DataInputStream dis;// 输入流(读取数据)

private DataOutputStream dos;// 输出流(发送数据)

// private String serverIP;// 服务器IP地址

// private int serverPort;// 服务器监听端口

private String sendData;// 发送的数据

public TcpSocketClientDemo(String serverIP, int serverPort) throws UnknownHostException, IOException {

// this.serverIP = serverIP;

// this.serverPort = serverPort;

socket = new Socket(serverIP, serverPort);

dis = new DataInputStream(socket.getInputStream());

dos = new DataOutputStream(socket.getOutputStream());

sendData = null;

startClient();

}

public void startClient() {

try {

// 第一步:创建客户端连接

System.out.println("===我的客户端界面===");

// 第二步:客户端向服务器发送数据

int i = 0;

Scanner input = new Scanner(System.in);

while (i  5) {

System.out.println("请输入你的内容(客户端的):");

sendData = input.nextLine();

if (sendData.equals("quit")) {

break;

}

dos.writeUTF(sendData);

sendData = dis.readUTF();

System.out.println("接收到服务器内容:" + sendData);

if (i == 5) {

System.out.println("超过允许次数,请重新连接服务器.");

}

if (sendData.equals("猜中了")) {

i = 5;

}

i++;

}

input.close();

} catch (Exception e) {

e.printStackTrace();

} finally {

// 第四步:关闭输入流、输出流和客户端连接

try {

dis.close();

dos.close();

socket.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

try {

new TcpSocketClientDemo("127.0.0.1", 1000);

} catch (IOException e) {

e.printStackTrace();

}

}

}

javaudp试题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaudp通信、javaudp试题的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-20,除非注明,否则均为首码项目网原创文章,转载请注明出处。