Java和C#应用程序之间的套接字通信

希特鲁姆

我有两个应用程序,一个用Java编写,另一个用C#编写。我正在尝试从Java应用程序向C#应用程序发送字符串。

我的用于发送字符串的Java代码如下:

String response;
try {
    DataOutputStream outToServer =
        new DataOutputStream(outGoingSocket.getOutputStream());
    BufferedReader inFromServer =
        new BufferedReader(new InputStreamReader(outGoingSocket.getInputStream()));

    outToServer.writeBytes(message + '\n');
    outToServer.flush();

    response = inFromServer.readLine();

    System.out.println("Received: " + response);        
} catch (Exception ex) {
    System.err.println("Exception in incoming socket: " + ex.getMessage());
}

我的用于接收数据的C#代码如下:

Byte[] bytes = new Byte[1000];
String data = null;
try {
    Console.Write("Waiting for a connection... ");
    TcpClient client = incomingSocket.AcceptTcpClient();
    Console.WriteLine("Connected!");

    data = null;
    NetworkStream stream = client.GetStream();

    int i;
    while (true) {
        while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) {
            data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
            Console.WriteLine("Received:", data);
            processReceivedMessage(data);
            ackSocket(stream, "OK");
        }
    }
} catch (Exception ex) {
    Console.WriteLine("Exception: ", ex);
}

我在C#应用程序中接收数据时遇到问题。当我在Java应用程序中发送字符串“ Data”并尝试使用来打印C#应用程序接收到的数据时Console.WriteLine("Received: {0}", data),输出为:

Received: D
Received: ata

如果使用Console.WriteLine("Received: ", data),则输出为:

Received: 
Received: 

我希望我的C#应用​​程序接收Java应用程序发送的完整字符串。我试图将缓冲区字节数组的大小增加到1000,但这没有帮助。我没有使用套接字的经验,有人可以告诉我我做错了什么吗?

消费者

因此,如您所见,接收端以块的形式接收响应,该响应可能比总消息小得多。

您不应该寻求改变这种行为……这是网络编程的事实。重新将它们重新粘合在一起是您的工作。

“我希望我的C#应用​​程序接收完整的字符串”

那么,您的接收应用程序如何知道接收到完整字符串呢?您是否发送了长度字段以指示将要发送多少数据?也许您希望\ n表示消息结束?零字节?

如果终止符确实是换行符,则可能要考虑将您的字符传递NetworkStream给aStreamReader并对其进行调用ReadLine现在,StreamReader它将继续从流中读取数据,直到遇到换行符,然后将您交给该行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#和Java套接字之间的通信停止了吗?

来自分类Dev

如何在Play 2服务器和C#应用程序之间建立套接字连接?

来自分类Dev

Android应用程序与Web浏览器之间的套接字通信

来自分类Dev

通过本地TCP / IP套接字的应用程序之间的通信

来自分类Dev

如何使用套接字对在应用程序之间进行双向通信?

来自分类Dev

如何使用套接字将文件从 android java 应用程序传输到 C# windows 应用程序?

来自分类Dev

如何在ASP.NET和C#应用程序之间进行通信

来自分类Dev

两个C#应用程序之间的通信

来自分类Dev

JavaFX桌面应用程序-与Web服务的套接字通信

来自分类Dev

应用程序如何通过套接字进行通信

来自分类Dev

两个Java应用程序可以通过标枪Web套接字进行通信吗?

来自分类Dev

C#应用程序与Python应用程序之间进行通信的简单方法

来自分类Dev

Swift iOS和Java套接字之间的TCP通信

来自分类Dev

使用JAVASCRIPT连接正在运行套接字的C#应用程序

来自分类Dev

在Java SE和Java EE应用程序之间进行通信

来自分类Dev

单台计算机上的 java 应用程序和 javascript 应用程序之间的高性能通信

来自分类Dev

php和servlet应用程序之间的通信

来自分类Dev

越狱的iOS:调整和应用程序之间的通信

来自分类Dev

越狱的iOS:调整和应用程序之间的通信

来自分类Dev

如何在Java FX FXML应用程序中的模型和视图之间进行通信?

来自分类Dev

Java套接字-跟踪应用程序已经创建了多少个套接字文件

来自分类Dev

如何使用套接字将Windows C#,Android和浏览器连接到一个数据库。(聊天应用程序)

来自分类Dev

C ++和Java应用程序之间的NamedPipe进程间

来自分类Dev

C进程和JAVA应用程序之间的FIFO问题

来自分类Dev

如何正确设置C#和Java之间的SSL套接字连接?

来自分类Dev

Android和C ++套接字通信

来自分类Dev

从Firefox扩展程序到C#应用程序的通信

来自分类Dev

C ++与现有PHP应用程序之间的通信

来自分类Dev

HttpClient访问套接字应用程序

Related 相关文章

  1. 1

    C#和Java套接字之间的通信停止了吗?

  2. 2

    如何在Play 2服务器和C#应用程序之间建立套接字连接?

  3. 3

    Android应用程序与Web浏览器之间的套接字通信

  4. 4

    通过本地TCP / IP套接字的应用程序之间的通信

  5. 5

    如何使用套接字对在应用程序之间进行双向通信?

  6. 6

    如何使用套接字将文件从 android java 应用程序传输到 C# windows 应用程序?

  7. 7

    如何在ASP.NET和C#应用程序之间进行通信

  8. 8

    两个C#应用程序之间的通信

  9. 9

    JavaFX桌面应用程序-与Web服务的套接字通信

  10. 10

    应用程序如何通过套接字进行通信

  11. 11

    两个Java应用程序可以通过标枪Web套接字进行通信吗?

  12. 12

    C#应用程序与Python应用程序之间进行通信的简单方法

  13. 13

    Swift iOS和Java套接字之间的TCP通信

  14. 14

    使用JAVASCRIPT连接正在运行套接字的C#应用程序

  15. 15

    在Java SE和Java EE应用程序之间进行通信

  16. 16

    单台计算机上的 java 应用程序和 javascript 应用程序之间的高性能通信

  17. 17

    php和servlet应用程序之间的通信

  18. 18

    越狱的iOS:调整和应用程序之间的通信

  19. 19

    越狱的iOS:调整和应用程序之间的通信

  20. 20

    如何在Java FX FXML应用程序中的模型和视图之间进行通信?

  21. 21

    Java套接字-跟踪应用程序已经创建了多少个套接字文件

  22. 22

    如何使用套接字将Windows C#,Android和浏览器连接到一个数据库。(聊天应用程序)

  23. 23

    C ++和Java应用程序之间的NamedPipe进程间

  24. 24

    C进程和JAVA应用程序之间的FIFO问题

  25. 25

    如何正确设置C#和Java之间的SSL套接字连接?

  26. 26

    Android和C ++套接字通信

  27. 27

    从Firefox扩展程序到C#应用程序的通信

  28. 28

    C ++与现有PHP应用程序之间的通信

  29. 29

    HttpClient访问套接字应用程序

热门标签

归档