Java客户端/服务器发送或获取int或字符串类型

和尚队长

我正在尝试创建一个简单的Java程序,其中客户端和服务器都将能够发送和获取字符串和整数。我可以仅使用字符串或仅使用整数来完成工作,但是我发现很难将它们组合而不会弄乱。如果有人可以告诉我最简单的方法,我将不胜感激。这是我到目前为止所做的,但返回的数字有误。

MyServer.java

package myserver;

import java.io.DataInputStream;
import java.util.Random;
import java.io.*;
import java.net.*;


public class MyServer 
{
   public static void main(String argv[]) throws Exception
      {
            String clientSentence;
            String answer;
            ServerSocket welcomeSocket = new ServerSocket(6789);
            Socket connectionSocket = welcomeSocket.accept();
            BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
            DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
            clientSentence = inFromClient.readLine();
            Random rand = new Random();
            int  n = rand.nextInt(100) + 1;
            System.out.println("Received: " + clientSentence);
            answer = "Hey " + clientSentence + " guess a number from 1 to 100!" + '\n';
            outToClient.writeBytes(answer);
             DataInputStream integerFromClient = new DataInputStream(connectionSocket.getInputStream());
            int k = integerFromClient.readInt();
            System.out.println(k);

      }
} 

MyClient.java

package myserver;

import java.io.*;
import java.net.*;

class MyClient
{
 public static void main(String argv[]) throws Exception
 {
  String sentence;
  String modifiedSentence;
  BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
  Socket clientSocket = new Socket("localhost", 6789);
  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  sentence = inFromUser.readLine();
  outToServer.writeBytes(sentence + '\n');
  modifiedSentence = inFromServer.readLine();
  System.out.println("SERVER: " + modifiedSentence);
  int k = inFromUser.read();
  outToServer.writeInt(k);
  clientSocket.close();
 }
}
彼得·劳瑞

我建议您使用包裹在BufferedInputStream / BufferedOutputStream周围的DataInputStream / DataOutputStream。这将允许您发送

dos.writeUTF(string);
String s = dis.readUTF();

或者

dos.writeInt(n);
int i = dis.readInt();

如果您不知道将要使用的类型,则可以使用这样的字节。

dos.writeByte('S');
dos.writeUTF(string);
dos.writeByte('i');
dos.writeInt(n);

for(int code; (code = dis.read()) != -1;) {
   switch(code) {
      case 'S':
            String s = dis.readUTF();
            process(s);
            break;
      case 'i':
            int i = dis.readInt();
            process(i);
            break;
      default:
            throw new StreamCorruptedException("code: "+code);
   }

}

您可以将其扩展为发送复杂的数据结构。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Android客户端向Python服务器发送字符串时的多余字符

来自分类Dev

如何使用Java中的套接字从服务器向特定客户端发送字符串消息?

来自分类Dev

UDP-Java服务器将字符串发送到C ++ / CLI .net客户端

来自分类Dev

在客户端和服务器之间发送字符串时出错

来自分类Dev

简单的rpyc客户端和服务器,用于发送字符串数据

来自分类Dev

从客户端向服务器发送字符串,然后保存文件(使用C)

来自分类Dev

PHP-C#TCP客户端/服务器如何发送字符串?

来自分类Dev

从客户端向服务器Python发送字符串消息

来自分类Dev

将字符串消息从Netty客户端发送到服务器

来自分类Dev

在客户端访问服务器变量时获取空字符串

来自分类Dev

Java服务器/客户端字符串延迟

来自分类Dev

TCP Java服务器,Python客户端字符串不相等

来自分类Dev

在服务器端裁剪与在客户端裁剪并发送base64字符串?

来自分类Dev

使用WiFi Direct在客户端和服务器端发送和接收字符串

来自分类Dev

使用Ajax调用.net,C#获取客户端的服务器端字符串值

来自分类Dev

如何在onc-rpc中从服务器向客户端发送字符串(char *)

来自分类Dev

如何将数据(字符串)从HTTP客户端发送到服务器

来自分类Dev

从客户端向服务器发送JSON字符串时出现400错误的请求异常

来自分类Dev

如果从服务器发送到客户端,则HTML字符串将获得额外的换行符

来自分类Dev

使用Jedi通过Java客户端从Redis服务器上的列表中删除字符串

来自分类Dev

服务器/客户端应用程序和JSONDecodeError:字符串python终止

来自分类Dev

在服务器 C# 上将客户端字符串转换为数组

来自分类Dev

将字符串从服务器发送到客户端-将其另存为文本文件

来自分类Dev

在客户端串联HTML中的两个字符串(无服务器)

来自分类Dev

在客户端串联HTML中的两个字符串(无服务器)

来自分类Dev

为什么我的Android客户端无法从Winsock C ++服务器接收字符串消息?

来自分类Dev

未终止的字符串错误将 JSON 对象从服务器移动到客户端 (VB.NET)

来自分类Dev

获取客户端的最大int服务器端

来自分类Dev

在简单的聊天程序中,服务器发送字符串的Arraylist,但客户端接收旧值

Related 相关文章

  1. 1

    从Android客户端向Python服务器发送字符串时的多余字符

  2. 2

    如何使用Java中的套接字从服务器向特定客户端发送字符串消息?

  3. 3

    UDP-Java服务器将字符串发送到C ++ / CLI .net客户端

  4. 4

    在客户端和服务器之间发送字符串时出错

  5. 5

    简单的rpyc客户端和服务器,用于发送字符串数据

  6. 6

    从客户端向服务器发送字符串,然后保存文件(使用C)

  7. 7

    PHP-C#TCP客户端/服务器如何发送字符串?

  8. 8

    从客户端向服务器Python发送字符串消息

  9. 9

    将字符串消息从Netty客户端发送到服务器

  10. 10

    在客户端访问服务器变量时获取空字符串

  11. 11

    Java服务器/客户端字符串延迟

  12. 12

    TCP Java服务器,Python客户端字符串不相等

  13. 13

    在服务器端裁剪与在客户端裁剪并发送base64字符串?

  14. 14

    使用WiFi Direct在客户端和服务器端发送和接收字符串

  15. 15

    使用Ajax调用.net,C#获取客户端的服务器端字符串值

  16. 16

    如何在onc-rpc中从服务器向客户端发送字符串(char *)

  17. 17

    如何将数据(字符串)从HTTP客户端发送到服务器

  18. 18

    从客户端向服务器发送JSON字符串时出现400错误的请求异常

  19. 19

    如果从服务器发送到客户端,则HTML字符串将获得额外的换行符

  20. 20

    使用Jedi通过Java客户端从Redis服务器上的列表中删除字符串

  21. 21

    服务器/客户端应用程序和JSONDecodeError:字符串python终止

  22. 22

    在服务器 C# 上将客户端字符串转换为数组

  23. 23

    将字符串从服务器发送到客户端-将其另存为文本文件

  24. 24

    在客户端串联HTML中的两个字符串(无服务器)

  25. 25

    在客户端串联HTML中的两个字符串(无服务器)

  26. 26

    为什么我的Android客户端无法从Winsock C ++服务器接收字符串消息?

  27. 27

    未终止的字符串错误将 JSON 对象从服务器移动到客户端 (VB.NET)

  28. 28

    获取客户端的最大int服务器端

  29. 29

    在简单的聊天程序中,服务器发送字符串的Arraylist,但客户端接收旧值

热门标签

归档