我正在玩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服务器通信相关推荐

  1. java内存 phd文件抓取_您可以从IBM PHD Java堆转储中提取字符串的值吗?

    我有一个来自IBM jvm的PHD格式堆转储,我希望检查一些字符串的值.使用Sun JVM的二进制hprof转储,这是可能的,但是我无法从IBM转储中恢复此信息. 我试过了: >具有IBM DT ...

  2. java蓝桥杯加法变乘法_蓝桥杯-加法变乘法-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  3. java英文不好可以学吗_英语不好可以学好Java吗?

    英语不好可以学好Java吗?许多人都觉得英语好,学编程就一定学的好.实际上,并非如此,虽然计算机程序大都采用英语的语法,但这跟英语是两码事.会英语的人多了,英语八级的同学看到程序照样是一点不会.经实际 ...

  4. java后端开发需要学什么_从事Java后端开发,要学习哪些知识和技能?

    首先要明确后端包括哪些职业:DBA(数据库维护优化专家),Developer(程序猿),Architect(构架师),Scrum master及类似(敏捷开发专家),Project Manager(产 ...

  5. java程序如何获取北京时间_计算当前的北京时间java(currentTimeMillis)

    计算当前的北京时间java(currentTimeMillis) 计算当前的北京时间java(currentTimeMillis) 当前北京时间 编写一个显示当前GMT时间的程序,该时间的格式为小时: ...

  6. java程序员必学_Java入门基础学习,成为一个Java程序员的必备知识

    引言 众所周知,Java是一种面向对象的编程语言.您可以在Windows操作系统上编写Java源代码,而在Linux操作系统上运行编译后的字节码,而无需修改源代码. 数据类型 Java 有 2 种数据 ...

  7. java中接口什么时候用_我什么时候应该在java中使用接口?

    在Java中精确使用接口的一个很好的例子将是理想的,适用于任何特定的规则. 看看丹以前所有的问题,他似乎只是逐字逐句地张贴家庭作业/考试问题. 令人惊讶的是,这些不是考试题或其他-今天才找到这个网站, ...

  8. java从内存角度理解类变量_深入理解volatile类型——从Java虚拟机内存模型角度...

    一.前言 在java多线程编程中,volatile可以用来定义轻量级的共享变量,它比synchronized的使用成本更低,因为它不会引起线程上下文的切换和调度.所谓知己知彼.百战不殆.本文从JVM内 ...

  9. java火车票订票系统 论文_毕业设计(论文)-基于JAVA的火车票售票系统.doc

    毕业设计(论文)-基于JAVA的火车票售票系统.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点 ...

  10. java子类有参构造函数吗_为什么我需要在这个Java通用子类中有一个构造函数?...

    我正在使用Java泛型.这是一个代码示例,后跟问题. public class Test> { T data; public Test(T data) { this.data = data; } ...

最新文章

  1. 鸿蒙系统matepad,C位鸿蒙今日发布,华为WATCH 3、MatePad Pro抢先剧透
  2. js运算符单竖杠“|”的用法和作用及js数据处理
  3. 【译】Alethio: Lighting Up the Blockchain with Real Time Data
  4. HarmonyOS之分布式任务调度开发流程
  5. Django_form补充
  6. 面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」
  7. 108_Power Pivot购物篮分析分组GENERATE之笛卡尔积、排列、组合
  8. android 系统(155)---如何自己添加号码归属地数据库?
  9. 腾讯财报:微信月活增至10.98亿 QQ月活8.07亿
  10. .sql文件_自己动手写SQL查询引擎
  11. 盈利模型的内容都有哪些?
  12. linux常用内核端口,基于Linux下的/O端口和I/O内存详解
  13. Google Protocol Buffer学习笔记(一)
  14. 监控视频异常检测数据集整理
  15. awk使用多个分割符
  16. 01-hadoop学习环境准备
  17. 联想启天m430安装黑苹果 10500 big sur 11.6
  18. 夏天第一图noob sky
  19. 手机网站支付唤起支付宝app
  20. Java推箱子游戏,文档+源码

热门文章

  1. SingalR 构建 推送服务器初探
  2. 操作Zookeeper
  3. beeline hiveserver2 start
  4. jquery prop('checked', true)解决attr('checked', true)不能选中radio问题
  5. org.apache.common.io-FileUtils详解
  6. 项目交换通知——PM(李忠)
  7. GridView中的格式化
  8. DirectX 9 学习笔记
  9. EMNLP'21中预训练模型最新研究进展
  10. 综述 | 注意力机制