单向协议-UDP通讯是单向还是双向

问题描述

UDP通讯是单向还是双向

UDP编程中,为什么服务器不能向客户端发送消息呢,客户端也不能接收服务器发送的消息?
服务器代码:
import java.net.*;

public class Server2 {

public static void main(String[] args) {

try {
    //向客户端发送消息
    byte[] b="我是服务器".getBytes();
    InetAddress ia= InetAddress.getByName("localhost");
    DatagramPacket dp=new DatagramPacket(b,b.length,ia,9999);
    DatagramSocket ds =new DatagramSocket();
    ds.send(dp);
    //接收从客户端发送的数据
    byte[] b2=new byte[1024];
    DatagramPacket dp2=new DatagramPacket(b2,b2.length);
    DatagramSocket ds2 =new DatagramSocket(9438);
    ds2.receive(dp2);
    //打印客户端发送的数据
    System.out.println(new String(b2,0,b2.length));
    ds.close();
    ds2.close();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}

}

客户端代码:
import java.net.*;
public class Client2 {

public static void main(String[] args) {

        try {
            //向服务器发送数据
            byte b[]="我是客户端".getBytes();
            InetAddress ia = InetAddress.getByName("localhost");
            DatagramPacket dp=new DatagramPacket(b,b.length,ia,9438);
            DatagramSocket ds=new DatagramSocket();
            ds.send(dp);
            //接收从服务器发送的消息
            byte b2[]=new byte [1024];
            DatagramPacket dp2=new DatagramPacket(b2,b2.length);
            DatagramSocket ds2=new DatagramSocket(9999);
            ds2.receive(dp2);
            //打印服务器发送的数据
            System.out.println("呵呵");
            System.out.println(new String(b2,0,b2.length));
            ds.close();
            ds2.close();

        } catch (Exception e) {

            e.printStackTrace();
        }

}

}

解决方案

http://blog.csdn.net/zlqqhs/article/details/8759042
参考

解决方案二:

http://blog.csdn.net/zlqqhs/article/details/8759042
参考

解决方案三:

http://blog.csdn.net/zlqqhs/article/details/8759042
参考

时间: 2024-09-24 02:14:31

单向协议-UDP通讯是单向还是双向的相关文章

JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例,我们暂时不讲了,我们直接来重点吧,关于JAVA的网络请求是怎么实现的?当然是HTTP协议,但是不可否认,他的概念和思想都是我们必须去涉及的,包括后面的tcp和socket等,好吧,我们开车吧! 一.JAVA网络请求概述 关于JAVA的网络请求,我们大致的可以分为以下几个分类 网络模式 OSI TCP

我的WCF之旅 (11): 再谈WCF的双向通讯-基于Http的双向通讯 V.S. 基于TCP的双向通讯

在一个基于面向服务的分布式环境中,借助一个标准的.平台无关的Communication Infrastructure,各个Service通过SOAP Message实现相互之间的交互.这个交互的过程实际上就是Message Exchange的过程.WCF支持不同形式的Message Exchange,我们把这称之为Message Exchange Pattern(MEP), 常见的MEP包括: Request/Reply,Request/Forget(One-way)和Duplex.通过采用Du

请教一下UDP通讯的问题

问题描述 各位大家好:我想做一套系统,在客户那放的是类似取票的设备,客户输入验证码后,前端设备与后台通讯,把信息提交到后台验证.后台将验证结果返回到前台设备上.前台设备再根据回传的信息做相应的控制.那么问题来了.1)我现在采用的是UDP模式,在前端设备上做了发送回应的确认处理,防止,发出的数据服务器没有收到.那我的服务器再发送回应数据的时候,还需要再等客户端再回发一次它收到我的回发数据的确认包吗?2)环境是前端设备分散在实际的商家店铺了.我的服务器准备放到IDC机房里.采用UDP通讯协议还是TC

udp-ANDROID UDP通讯 闪退 急求

问题描述 ANDROID UDP通讯 闪退 急求 刚刚写了一个UDP通讯的类, public class EasyUDPClient { public int udpRemotePort; public String S_ip; public DatagramSocket socket; private InetAddress serverAddress; public EasyUDPClient(String ServerIP,int Port) { udpRemotePort = Port;

tcp协议 udp协议-C#服务端请求客户端数据

问题描述 C#服务端请求客户端数据 我想在客户端安装一个服务后,能够向客户端请求数据,返回数据给服务器,这样用什么协议要好,socket行吗?服务端怎么发起这个请求,麻烦各位大神帮帮忙? 我不清楚的地方,如果用socket,保存客户端连接后,我要请求客户端数据,只能是客户端请求服务端,而我换成服务端请求客户端好像只能是客户端请求后服务端回复. 如果是UDP的话好定义请求和回复问题吗? 解决方案 ok,既然是.net,就有.net的最佳做法,wcf双工通讯或signalr.我在论坛都分享过例子.

用户数据报协议(UDP)

介绍 用户数据报协议是定义用来在互连网络环境中提供包交换的计算机通信的协议.此协议默认认为网路协议(IP)是其下层协议.此协议提供了向另一用户程序发送信息的最简便的协议机制.此协议是面向操作的,未提供提交和复制保护.如果应用程序要求可靠的数据传送应该使用传输控制协议(TCP).数据报格式如下: 用户数据报头格式 域 源端口是可选域,当其有意义时,它指的是发送进程的端口,这也就假定了在没有其它信息的情况下,返回信息应该向什么地方发送.如果不使用它,则在此域中填0.目的端口在有特定的目的网络地址时有

JAVA通信编程(四)——UDP通讯

经过TCP和串口通讯编程的了解,相信大家应该掌握CommBuff的套路了,这里首先展示的是通过UDP编程的方式实现CommBuff接口,之后通过简单工厂模式的应用说明如何屏蔽底层通讯差异. UdpImpl类如下: package com.zzh.comm; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;

TCP UDP 通讯编程

问题描述 最近的工作涉及到使用NIO进行通讯编程.也不知道用哪个框架比较好?看了XSOCKET官网说已经不跟新了.是不是最好不要用这个了?至于MINAGRIZZLY哪个更好用呢?这个需要20万的并发量,请这方面的高手指点. 解决方案 解决方案二:比较关注这种问题,等待高手来回答....解决方案三:该回复于2010-12-28 16:46:35被版主删除解决方案四:帮顶,接分哈解决方案五:新手继续顶解决方案六:没接触这方面的东西,等高手解决方案七:没接触这方面的东西,期待高手解决解决方案八:推荐m

使用SOCKET实现TCP/IP协议的通讯

一.原理:      首先要理解基本的原理,2台电脑间实现TCP通讯,首先要建立起连接,在这里要提到服务器端与客户端,两个的区别通俗讲就是主动与被动的关系,两个人对话,肯定是先有人先发起会话,要不然谁都不讲,谈什么话题,呵呵!一样,TCPIP下建立连接首先要有一个服务器,它是被动的,它只能等待别人跟它建立连接,自己不会去主动连接,那客户端如何去连接它呢,这里提到2个东西,IP地址和端口号,通俗来讲就是你去拜访某人,知道了他的地址是一号大街2号楼,这个是IP地址,那么1号楼这么多门牌号怎么区分,嗯