java下udp的DatagramSocket 发送与接收

发送

package cn.stat.p4.ipdemo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class netdemo {

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        //建立socket对像
        System.out.println("发送启动");
        senddata();

    }
    //发送数据
    public static void senddata() throws SocketException, UnknownHostException,
            IOException {
        DatagramSocket ds=new DatagramSocket();

        BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));

        String line=null;

        while((line=bfr.readLine())!=null)
        {
            //封装要发送的数据
            if(line.equals("over"))
                break;
            byte[] buf=line.getBytes();
            DatagramPacket dp=new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.104"), 1000);

            //通过udp发送
            ds.send(dp);
        }

        ds.close();
    }

    //获得本机ip
    public static void getip() throws UnknownHostException {
        InetAddress ip =InetAddress.getLocalHost();

        System.out.println(ip.getHostAddress());
    }

}

接收

package cn.stat.p4.ipdemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class jieshoudemo {

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        while(true){
        jieshou();
        }

    }

    public static void jieshou() throws SocketException, IOException {
        System.out.println("接受启动");
        //建立接收socket
        DatagramSocket ds= new DatagramSocket(1000);
        //创建数据包
        byte[] buf=new byte[1024];
        DatagramPacket dp=new DatagramPacket(buf, buf.length);

        //使用接收方法将数据存储到数据包中
        ds.receive(dp);

        //通过数据包解析获取其中数据,如地址,端口,数据内容
        String ip=dp.getAddress().getHostAddress();
        int port=dp.getPort();
        String txt=new String(dp.getData(),0,dp.getLength());

        System.out.println(ip+":"+port+":"+txt);

        ds.close();
    }

}
时间: 2024-10-10 10:25:05

java下udp的DatagramSocket 发送与接收的相关文章

Udp广播的发送和接收(ios+AsyncUdpSocket)下篇

接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 准备工作: 在github上找到cocoaAsyncSocket,下载下来,把其中AsyncUdpSocket.h和AsyncUdpSocket.m文件copy到你的项目中,其他文件都不需要.copy到swift环境下会自动提示创建桥接文件,点击确认就可以了. 发送Udp: 上面代码对局域网广播消

udp网络程序-发送、接收数据

1. udp网络程序-发送数据 创建一个基于udp的网络程序流程很简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: #coding=utf-8 from socket import * # 1. 创建udp套接字 udp_socket = socket(AF_INET, SOCK_DGRAM) # 2. 准备接收方的地址 # '192.168.1.103'表示目的ip地址 # 8080表示目的端口 dest_addr = ('192.168.1.103', 8080

C#中Udp广播的发送与接收(UdpClient)

简介: Udp广播消息用在局域网的消息传递很方便.本文使用UdpClient类在WPF下实现Udp广播收发 发送: 1 void MainWindow_Loaded(object sender, RoutedEventArgs e) 2 { 3 Loaded -= MainWindow_Loaded; 4 UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 0)); 5 IPEndPoint endpoint = new

java的UDP和TCP详解和北京-赛车平台出租源码分析

1.需求分析北京-赛车平台出租Q1446595067 最近在和硬件做网口的传输协议,一开始告诉我说用TCP的socket进行传输,我说没问题,就写了个socket的发送和接收方法.but过了没一段时间,又告诉我用udp吧,udp传的比较快,就也写了一个udp的.无论是socket还是udp,感觉网上有很多都是写一个监听端口,监听往这个端口发送的数据,然后再写一个发送方法. 2.问题难点本来硬件要是往java端指定端口发,就完全没问题了,但是它是把我发送的数据按照我发的端口号原路返回,就想http

Java UDP数据报发送与接收 学习

java中DatagramPacket表示存放数据的数据报,DatagramSocket表示接受或发送数据报的套接字. 这两个类所有构成的网络链接是基于UDP协议的. import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class Sender { public static void main(String[] args) { try { // 创

Linux系统下UDP发送和接收广播

// 发送端   02.#include 03.#include 04.#include<sys/socket.h>05.#include 06.#include<sys/types.h>07.#include 08.#include<netinet/in.h>09.#include<arpa/inet.h>10.#include 11.   12.   13.using namespace std;   14.   15.int main()   16.{

Java 中UDP原理机制及实现方式介绍(建议阅读者阅读前了解下Java的基础知识,一方便理解)

1.基本概念介绍: 首先得简单介绍下UDP. UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.它是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的 但是这种协议却是方便快捷的,因此很多通信工具和游戏仍然采用这种通信方式,虽然有时会出现数据丢帧

Udp实现消息的发送和接收、以及图片的上传

//Udp实现消息的发送和接收 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException; import java.util.Scanner; public class UdpUtils implements Runnable { //定义

Java Networking: UDP DatagramSocket (翻译)

原文:http://tutorials.jenkov.com/java-networking/udp-datagram-sockets.html UDP vs. TCP Sending Data via a DatagramSocket Receiving Data via a DatagramSocket DatagramSocket's are Java's mechanism for network communication via UDP instead of TCP. UDP is