Sending data from Java to C

I'm creating a program to send strings from a java client to a C server using Winsock2 I am using dataoutputstream to send data through socket

The C server acknowledges the bytes received, but nothing is displayed when I try to access the data

The server

Socket socket = null;
    DataOutputStream dataOutputStream = null;
    DataInputStream dataInputStream = null;
 try {
  socket = new Socket("10.40.0.86",2007);
  dataOutputStream = new DataOutputStream(socket.getOutputStream());
  dataInputStream = new DataInputStream(socket.getInputStream());
  //dataOutputStream.writeUTF("How are you doing let us see what is the maximum possible length that can be supported by the protocal");
  String line = "hey";
  dataOutputStream.writeUTF(line);
  dataOutputStream.flush();

  //System.out.println(dataInputStream.readLine());
  System.out.println((String)dataInputStream.readLine().replaceAll("[^0-9]",""));
  //System.out.println(dataInputStream.readInt());
  //System.out.println(dataInputStream.readUTF());
 } catch (UnkNownHostException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }

customer

if (socket_type != SOCK_DGRAM)
            {
                retval = recv(msgsock,Buffer,sizeof(Buffer),0);
                printf("Server: Received datagram from %s\n",inet_ntoa(from.sin_addr));

            }

yield

Server: Received 5 bytes,data "" from client
BUFFER :
Server: Echoing the same data back to client...
BUFFER :
Server: send() is OK.

Solution

Your C code needs to understand the data format written by writeutf () (see Javadoc). Otherwise, you need to use write (char []) or write (byte []) on the Java side

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>