Sending data from Java to C
•
Java
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
二维码