发送方创建步骤:

1.  创建一个DatagramSocket对象

DatagramSocket socket = new  DatagramSocket (4567);

2.  创建一个 InetAddress , 相当于是地址

InetAddress serverAddress = InetAddress.getByName("想要发送到的那个IP地址");

3.  这是随意发送一个数据

String str = "hello";

4.  转为byte类型

byte data[] = str.getBytes();

5.  创建一个DatagramPacket 对象,并指定要讲这个数据包发送到网络当中的哪个地址,以及端口号

DatagramPacket  package = new DatagramPacket (data , data.length , serverAddress , 4567);

6.  调用DatagramSocket对象的send方法 发送数据

socket . send(package);

udp的辅助工具类:

这在自己项目中主要用来发送频道号码,如果是1...9自然发送一次即可,如果是多余1位的,就依次发送。

package com.wotlab.home.moneyplantairs.utils;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
/**
* 为红外适配器发送指令的助手类
* @author lx
*
*/
public class UDPHelper {
private static DatagramSocket s = null;
private static InetAddress local; public static void sendSingle(int message, String ip) {
int server_port = Constants.SOCKET_PORT;
if (s == null) {
try {
s = new DatagramSocket();
} catch (SocketException e) {
e.printStackTrace();
}
try {
// 换成服务器端IP,ip为想要发送到的那个ip地址
local = InetAddress.getByName(ip);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
String send = "###\r\n" + message + " \r\n###";
DatagramPacket p = new DatagramPacket(send.getBytes(), send.length(),
local, server_port);
try {
s.send(p);
} catch (IOException e) {
e.printStackTrace();
}
} public static void sendChannel(int channelID, String ip) {
char[] strChannel = (channelID + "").toCharArray();
for (int i = 0; i < strChannel.length; i++) { switch (Integer.parseInt(strChannel[i] + "")) {
case 0:
sendSingle(0x11, ip);
break;
case 1:
sendSingle(0x28, ip);
break;
case 2:
sendSingle(0x18, ip);
break;
case 3:
sendSingle(0x08, ip);
break;
case 4:
sendSingle(0x22, ip);
break;
case 5:
sendSingle(0x12, ip);
break;
case 6:
sendSingle(0x02, ip);
break;
case 7:
sendSingle(0x29, ip);
break;
case 8:
sendSingle(0x19, ip);
break;
case 9:
sendSingle(0x09, ip);
break;
} if (i + 1 != strChannel.length) {
try {
Thread.sleep(1000);
} catch (Exception e) {
}
}
}
} }

udp辅助工具类

发送tcp的操作

package com.wotlab.home.moneyplantairs.utils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress; /**
* Socket的助手类,用于通过TCP协议发送数据
*
* @author lx
*
*/
public class SocketHelper {
private Socket s = null;
BufferedReader input = null;
PrintWriter output = null; public SocketHelper() {
} public void connect(String ip, int port) throws Exception {
s = new Socket();
SocketAddress socAddress = new InetSocketAddress(ip, port);
// SocketAddress socAddress = new InetSocketAddress("192.168.1.105",
// port);
s.connect(socAddress, Constants.SOCKET_TIMEOUT);
s.setSoTimeout(Constants.SOCKET_LINK_TIMEOUT);
} public void close() throws Exception {
output.close();
input.close();
s.close();
} public String sendTCP(String str) {
String receive = "";
try {
if (s == null) {
throw new Exception("");
}
output = new PrintWriter(s.getOutputStream());
output.print(str);
output.flush();
input = new BufferedReader(
new InputStreamReader(s.getInputStream()));
receive = input.readLine();
} catch (Exception e) {
e.printStackTrace();
}
return receive;
}
}

发送tcp消息

android发送udp,tcp消息的更多相关文章

  1. android 发送UDP广播,搜寻server建立socket链接

    应用场景:client(手机.pc)须要搜寻所在局域网内的server并获得server地址. 方法简单介绍:client发送UDP广播,服务收到广播后得到clientip地址,然后向client发送 ...

  2. NetworkComms V3 之发送UDP广播消息

    NetworkComms网络通信框架序言 NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3目前只支持基本的U ...

  3. UDP TCP 消息边界

    先明确一个问题,如果定义了一个数据结构,大小是,比方说 32 个字节,然后 UDP 客户端连续向服务端发了两个包.现在假设这两个包都已经到达了服务器,那么服务端调用 recvfrom 来接收数据,并且 ...

  4. 高效的TCP消息发送组件

    目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能分布式应用所必需的.为此我结合多年的底层开发经验开发了一个.net 下的高效TCP消息发送组件.这个组件在异步发送时可以达到每 ...

  5. NTCPMSG 开源高性能TCP消息发送组件

    https://www.cnblogs.com/eaglet/archive/2013/01/07/2849010.html 目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能 ...

  6. (unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误

    一个困扰我两天的问题, Google和Baidu没有找到解决方法! 此文为记录这个问题,并给出原因和解决方法. 1.Unix domain socket简介 unix域协议并不是一个实际的协议族,而是 ...

  7. Android 手机卫士--解析json与消息机制发送不同类型消息

    本文地址:http://www.cnblogs.com/wuyudong/p/5900800.html,转载请注明源地址. 1.解析json数据 解析json的代码很简单 JSONObject jso ...

  8. Android 基于Netty的消息推送方案之字符串的接收和发送(三)

    在上一篇文章中<Android 基于Netty的消息推送方案之概念和工作原理(二)> ,我们介绍过一些关于Netty的概念和工作原理的内容,今天我们先来介绍一个叫做ChannelBuffe ...

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

    //Udp实现消息的发送和接收 import java.io.IOException; import java.net.DatagramPacket; import java.net.Datagram ...

随机推荐

  1. kafka消费者脚本无法启动问题

    console-consumer can't rebalance after 4 retries 解决方案:kafka0.9版本换成1.0版本 究竟是怎么回事我也不知道

  2. [19/10/16-星期三] Python中的模块和包、异常、操作文件

    一.模块 # 模块(module) # 模块化,模块化指将一个完整的程序分解为一个一个小的模块 # 通过将模块组合,来搭建出一个完整的程序 # 不采用模块化,统一将所有的代码编写到一个文件中 # 采用 ...

  3. osi七层模型??

    1.应用层:提供用户服务,例如处理应用程序,文件传输,数据管理      (HTTP.RTSP.FTP) 2.表示层:做数据的转换和压缩,加解密等 3.会话层:决定了进程间的连接建立,选择使用什么样的 ...

  4. 解决intellij idea控制台中文乱码

    乱码原因: 1.系统语言:英文 英文系统下遇到乱码问题,分析了程序执行参数如下: ps -ef | grep java 执行后得到如下的结果,省略了classpath: /System/Library ...

  5. 深入了解RabbitMQ工作原理及简单使用

    深入了解RabbitMQ工作原理及简单使用 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchange介绍 ...

  6. 计算机系统结构总结_Instruction Set Architecture

    Textbook:<计算机组成与设计——硬件/软件接口>  HI<计算机体系结构——量化研究方法>          QR 这节我们来看CPU内部的一些东西. Instruct ...

  7. 在cmd下用cd怎么进不了其他的盘

    你当前就是在C盘目录下的,可以切换到别的盘比如D:,然后在切换E:!然后可以切换C:,然后可以用cd\回到根目录. cd是打开文件根目录里面文件夹的,比如C:目录下可以cd Windows打开Wind ...

  8. git基本命令和仓库操作

    首先git是什么?git是github上的一个代码托管工具,是一款代码版本管理工具,github上的代码是基于git来进行托管的.github是全球的开源社区.Git 保存的不是文件的变化或者差异,而 ...

  9. 自己制作 Android Vector Asset 矢量图

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/c5138891/article/deta ...

  10. Servlet实现Cookie自动登录,并显示保存的用户信息

    转自:https://blog.csdn.net/qq_29612963/article/details/51100565