android发送udp,tcp消息
发送方创建步骤:
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消息的更多相关文章
- android 发送UDP广播,搜寻server建立socket链接
应用场景:client(手机.pc)须要搜寻所在局域网内的server并获得server地址. 方法简单介绍:client发送UDP广播,服务收到广播后得到clientip地址,然后向client发送 ...
- NetworkComms V3 之发送UDP广播消息
NetworkComms网络通信框架序言 NetworkComms通信框架,是一款来自英国的c#语言编写的通信框架,历时6年研发,成熟稳定,性能可靠. NetworkComms v3目前只支持基本的U ...
- UDP TCP 消息边界
先明确一个问题,如果定义了一个数据结构,大小是,比方说 32 个字节,然后 UDP 客户端连续向服务端发了两个包.现在假设这两个包都已经到达了服务器,那么服务端调用 recvfrom 来接收数据,并且 ...
- 高效的TCP消息发送组件
目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能分布式应用所必需的.为此我结合多年的底层开发经验开发了一个.net 下的高效TCP消息发送组件.这个组件在异步发送时可以达到每 ...
- NTCPMSG 开源高性能TCP消息发送组件
https://www.cnblogs.com/eaglet/archive/2013/01/07/2849010.html 目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能 ...
- (unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误
一个困扰我两天的问题, Google和Baidu没有找到解决方法! 此文为记录这个问题,并给出原因和解决方法. 1.Unix domain socket简介 unix域协议并不是一个实际的协议族,而是 ...
- Android 手机卫士--解析json与消息机制发送不同类型消息
本文地址:http://www.cnblogs.com/wuyudong/p/5900800.html,转载请注明源地址. 1.解析json数据 解析json的代码很简单 JSONObject jso ...
- Android 基于Netty的消息推送方案之字符串的接收和发送(三)
在上一篇文章中<Android 基于Netty的消息推送方案之概念和工作原理(二)> ,我们介绍过一些关于Netty的概念和工作原理的内容,今天我们先来介绍一个叫做ChannelBuffe ...
- Udp实现消息的发送和接收、以及图片的上传
//Udp实现消息的发送和接收 import java.io.IOException; import java.net.DatagramPacket; import java.net.Datagram ...
随机推荐
- VS2013启动 外接程序VMDebugger未能加载或导致了异常
故障现象:打开Visual Studio 2010后弹出错误框,外接程序VMDebugger未能加载或导致了异常,是否希望移除该外接程序,错误号:80004005.系统版本:WIN10 64位专业版, ...
- [转帖]是时候深入了解Linux的系统结构
是时候深入了解Linux的系统结构 http://os.51cto.com/art/201905/596011.htm linux的体系结果 其实自己也知道 linus 做了一个 kernel 大 ...
- 【查阅】mysql配置文件/参数文件重要参数笔录(my.cnf)
持续更新,积累自己对参数的理解 [1]my.cnf参数 [client]port = 3306socket = /mysql/data/3306/mysql.sockdefault-character ...
- HDU 1864 最大报销额 0-1背包
HDU 1864 最大报销额 0-1背包 题意 现有一笔经费可以报销一定额度的发票.允许报销的发票类型包括买图书(A类).文具(B类).差旅(C类),要求每张发票的总额不得超过1000元,每张发票上, ...
- 悼念512汶川大地震遇难同胞——选拔志愿者 HDU 2188 博弈论 巴什博奕
悼念512汶川大地震遇难同胞--选拔志愿者 HDU 2188 博弈论 巴什博奕 题意 对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队 ...
- 同一台电脑管理多个SSH KEY
同一台电脑关于多个SSH KEY管理 笔者之前为电脑中的homestead虚拟机配置过id_rsa,但现在因为想在github上搭建基于hexo的博客,所以需要配置github的ssh key,因此产 ...
- 如何遍历div里面的文本内容,用each方法,
如何遍历div里面的文本内容,然后进行匹配传来的数据,进行选中div,并进行CSS样式处理, for(i = 0; i< $(".itemMenuRowBox").child ...
- .net WebApi使用swagger 美化接口文档
本文将一步步演示如何用swagger美化WebApi接口文档,为接口文档添加接口名称说明,为请求参数和返回数据结构字段含义添加注释说明 一.为WebApi项目安装Swagger 首先我们新建一个Web ...
- 第三方模块:gulp模块
一.Gulp的使用 1. 使用npm install gulp 下载gulp库文件 2. 在项目根目录下简历gulpfile.js文件 3. 重构项目的文件夹架构src目录放置源代码文件,dist ...
- C/C++ 内存与指针
内存与指针杂谈 1.指针 1.数组指针 int(*ptr)[n] ()的优先级高,(*ptr)表示ptr是一个指针,指向一个int类型的一维数组,这个数组的长度为n,也可以说ptr的步长就是n.也就是 ...