使用套接字编程将数据从Java发送到C.
发布时间:2020-12-15 02:25:50 所属栏目:Java 来源:网络整理
导读:我正在创建一个程序,使用WinSock2将字符串从 Java客户端发送到C服务器.我正在使用DataOutputStream通过套接字发送数据. C服务器确认收到的字节,但是当我尝试访问数据时,不会显示任何内容. 服务器 Socket socket = null; DataOutputStream dataOutputStream =
我正在创建一个程序,使用WinSock2将字符串从
Java客户端发送到C服务器.我正在使用DataOutputStream通过套接字发送数据.
C服务器确认收到的字节,但是当我尝试访问数据时,不会显示任何内容. 服务器 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(); } 客户 if (socket_type != SOCK_DGRAM) { retval = recv(msgsock,Buffer,sizeof(Buffer),0); printf("Server: Received datagram from %sn",inet_ntoa(from.sin_addr)); } 产量 Server: Received 5 bytes,data "" from client BUFFER : Server: Echoing the same data back to client... BUFFER : Server: send() is OK. 解决方法
您的C代码需要理解writeUTF()编写的数据格式(请参阅Javadoc),否则更简单的是您需要在Java端使用write(char [])或write(byte []).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |