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 ...
随机推荐
- CentOS7 安装SQLCMD
1. Study From https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-tools?view=sql-serve ...
- 逆向工程 生成mapper 接口的 重要方法
@Test public void testSelectByExample() { ItemsExample itemsExample = new ItemsExample(); ItemsExamp ...
- C++中的字符串类
1,本文分析 C++ 中的字符串,C 语言中的字符串利用的是 C 语言中的字符数组, 在 C 语言中没有真正意义上的字符串,利用了字符数组表示了字符串,最初设 计 C 语言仅仅是为了开发 Unix ...
- 理解 JavaScript 闭包
这是本系列的第 4 篇文章. 作为 JS 初学者,第一次接触闭包的概念是因为写出了类似下面的代码: for (var i = 0; i < helpText.length; i++) { var ...
- Find The Multiple (水题)
Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal repr ...
- 执行npm publish 报错:401 Unauthorized - PUT https://registry.npmjs.org/kunmomotest - You must be logged in to publish packages.
前言 执行npm publish 报错:401 Unauthorized - PUT https://registry.npmjs.org/kunmomotest - You must be logg ...
- python 查询Neo4j多节点的多层关系
需求:查询出满足3人及3案有关系的集合 # -*- coding: utf-8 -*- from py2neo import Graph import psycopg2 # 二维数组查找 def fi ...
- 封装自己的framework静态库
ios中我们写的代码有时不愿意让别人看到,可能对它进行封装,生成一个静态库如典型的.a,还有一种就是和 苹果自带的库一样的后缀名为.framework的库,个人推荐使用.framework,因为.a不 ...
- linux MySql 主从异步复制
[root@localhost ~]# hostname master.allentuns ###SLAVE 执行 [root@localhost ~]# sed -i 's@\(HOSTNAME=\ ...
- [转载]Quartus ii 一些Warning/Eeror分析与解决
我会在此基础上继续添加 原文地址:ii 一些Warning/Eeror分析与解决">Quartus ii 一些Warning/Eeror分析与解决作者:yanppf 注:http:// ...