java udp 断开_Java udp socket编程

本文展示了如何使用Java实现简单的UDP通信。服务端接收客户端发送的字符串,将其转换为大写并回传。客户端通过DatagramSocket发送和接收数据,实现了基于UDP的数据交互。
摘要由CSDN通过智能技术生成

本文仅实现了客户端发送字符串到服务端,服务端将其转换为大写,再发送给服务端

Java 比c++简单明了得多,直接看代码就可以弄懂了。

服务端

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.util.Arrays;

public class Main {

//服务器

public static void main(String[] args) {

// write your code here

try {

//众所周知,UDP面向数据报

DatagramSocket socket = new DatagramSocket(9527);

byte[] message=new byte[1024];

while (true){

DatagramPacket packet = new DatagramPacket(message,1024);

socket.receive(packet);

InetAddress address = packet.getAddress();

int port = packet.getPort();

byte[] received = packet.getData();

int len = packet.getLength();

for(int i=0;i

if(received[i]>='a'&&received[i]<='z'){

received[i]= (byte) (received[i]-'a'+'A');

}

}

for(int i=0;i

System.out.printf("%c",packet.getData()[i]);

}

System.out.println();

packet.setAddress(address);

packet.setPort(port);

socket.send(packet);

}

} catch (IOException e) {

System.out.println("socket有问题");

}

}

}

客户端

import java.io.IOException;

import java.net.*;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

// write your code here

Scanner input = new Scanner(System.in);

try {

String words;

while (true) {

words=input.next();

DatagramSocket socket = new DatagramSocket();

byte[] message = words.getBytes();

//InetAddress类用来描述一个IP地址

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

//DatagramPacket是一个数据报包

//port用于表述服务器应用进程的端口号

DatagramPacket packet = new DatagramPacket(message, message.length, address, 9527);

socket.send(packet);

System.out.println("发送成功!");

socket.receive(packet);

int len = packet.getLength();

for(int i=0;i

System.out.printf("%c",packet.getData()[i]);

}

System.out.println();

}

} catch (SocketException e) {

System.out.println("socket有问题");

} catch (UnknownHostException e) {

System.out.println("地址有问题");

}catch (IOException e) {

System.out.println("发送失败了");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值