java tcp通信需要学吗_从c#通过tcp与java服务器通信
我正在玩TCP服务器和客户端,我试图从c#应用程序与Java服务器进行通信,但我无法让它工作 .
我正在为我的Java服务器使用多线程服务器(线程连接) . 我读取输入流并使用DataInputStream和DataOutputStream编写输出流 . 这是我用来接收传入包的代码
DataInputStream ois = null;
DataOutputStream oos = null;
ois = new DataInputStream(clientSocket.getInputStream());
oos = new DataOutputStream(clientSocket.getOutputStream());
while(clientSocket.isConnected())
{
while(ois.available() > 0)
{
byte id = ois.readByte();
Package p = MultiThreadedServer.getPackageHandler().getPackage(id);
if(p != null)
{
p.handle(ois, oos);
System.out.println("Request processed with id: " + id);
}
}
}
当我通过java连接此服务器时,我曾经以这种方式发送数据:
DataOutputStream oos = new DataOutputStream(socket.getOutputStream());
oos.writeByte(5);
oos.writeByte(3); // user_ID
oos.flush();
然后我通过搜索与发送的传入字节具有相同id的包来读取服务器中的输入oos.writeByte(5);这是我的Package类
public abstract class Package
{
private int id = 0;
public Package(int id){ this.id = id; }
public abstract void handle(DataInputStream ois, DataOutputStream oos) throws Exception;
public int getID()
{
return id;
}
}
我如何读取传入数据的示例:
@Override
public void handle(DataInputStream ois, DataOutputStream oos) throws Exception
{
int user_id = ois.readByte();
System.out.println("Handle package 1 " + user_id);
ResultSet rs = cm.execute("SELECT TOP 1 [id] ,[username] FROM [Database].[dbo].[users] WHERE [id] = '"+ user_id +"'");
while (rs.next())
{
oos.writeByte((getID() + (byte)999));
oos.writeUTF(rs.getString(2));
oos.flush();
}
}
这在Java中运行良好,但我如何使用c#发送这样的数据?我需要一个可以执行此操作的函数:
DataOutputStream oos = new DataOutputStream(socket.getOutputStream());
oos.writeByte(5);
oos.writeByte(3); // user_ID
oos.flush();
或者c#中的东西,但是c#中的NetworkStream类不支持这个,所以我该怎么做呢?
java tcp通信需要学吗_从c#通过tcp与java服务器通信相关推荐
- java内存 phd文件抓取_您可以从IBM PHD Java堆转储中提取字符串的值吗?
我有一个来自IBM jvm的PHD格式堆转储,我希望检查一些字符串的值.使用Sun JVM的二进制hprof转储,这是可能的,但是我无法从IBM转储中恢复此信息. 我试过了: >具有IBM DT ...
- java蓝桥杯加法变乘法_蓝桥杯-加法变乘法-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- java英文不好可以学吗_英语不好可以学好Java吗?
英语不好可以学好Java吗?许多人都觉得英语好,学编程就一定学的好.实际上,并非如此,虽然计算机程序大都采用英语的语法,但这跟英语是两码事.会英语的人多了,英语八级的同学看到程序照样是一点不会.经实际 ...
- java后端开发需要学什么_从事Java后端开发,要学习哪些知识和技能?
首先要明确后端包括哪些职业:DBA(数据库维护优化专家),Developer(程序猿),Architect(构架师),Scrum master及类似(敏捷开发专家),Project Manager(产 ...
- java程序如何获取北京时间_计算当前的北京时间java(currentTimeMillis)
计算当前的北京时间java(currentTimeMillis) 计算当前的北京时间java(currentTimeMillis) 当前北京时间 编写一个显示当前GMT时间的程序,该时间的格式为小时: ...
- java程序员必学_Java入门基础学习,成为一个Java程序员的必备知识
引言 众所周知,Java是一种面向对象的编程语言.您可以在Windows操作系统上编写Java源代码,而在Linux操作系统上运行编译后的字节码,而无需修改源代码. 数据类型 Java 有 2 种数据 ...
- java中接口什么时候用_我什么时候应该在java中使用接口?
在Java中精确使用接口的一个很好的例子将是理想的,适用于任何特定的规则. 看看丹以前所有的问题,他似乎只是逐字逐句地张贴家庭作业/考试问题. 令人惊讶的是,这些不是考试题或其他-今天才找到这个网站, ...
- java从内存角度理解类变量_深入理解volatile类型——从Java虚拟机内存模型角度...
一.前言 在java多线程编程中,volatile可以用来定义轻量级的共享变量,它比synchronized的使用成本更低,因为它不会引起线程上下文的切换和调度.所谓知己知彼.百战不殆.本文从JVM内 ...
- java火车票订票系统 论文_毕业设计(论文)-基于JAVA的火车票售票系统.doc
毕业设计(论文)-基于JAVA的火车票售票系统.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点 ...
- java子类有参构造函数吗_为什么我需要在这个Java通用子类中有一个构造函数?...
我正在使用Java泛型.这是一个代码示例,后跟问题. public class Test> { T data; public Test(T data) { this.data = data; } ...
最新文章
- 鸿蒙系统matepad,C位鸿蒙今日发布,华为WATCH 3、MatePad Pro抢先剧透
- js运算符单竖杠“|”的用法和作用及js数据处理
- 【译】Alethio: Lighting Up the Blockchain with Real Time Data
- HarmonyOS之分布式任务调度开发流程
- Django_form补充
- 面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」
- 108_Power Pivot购物篮分析分组GENERATE之笛卡尔积、排列、组合
- android 系统(155)---如何自己添加号码归属地数据库?
- 腾讯财报:微信月活增至10.98亿 QQ月活8.07亿
- .sql文件_自己动手写SQL查询引擎
- 盈利模型的内容都有哪些?
- linux常用内核端口,基于Linux下的/O端口和I/O内存详解
- Google Protocol Buffer学习笔记(一)
- 监控视频异常检测数据集整理
- awk使用多个分割符
- 01-hadoop学习环境准备
- 联想启天m430安装黑苹果 10500 big sur 11.6
- 夏天第一图noob sky
- 手机网站支付唤起支付宝app
- Java推箱子游戏,文档+源码