java - C 中 DataOutputStream 和 DataInputStream 的等价物

标签 java c sockets datainputstream dataoutputstream

这段代码是我用java写的

public class Client
{
    private static int    _port;
    private static Socket _socket;


    public static void main(String[] args)
    {

        try
        {
            _port   = 8071;
            _socket = new Socket("localhost", _port);


            Random rand = new Random();
            int  n = rand.nextInt(50) + 1;
            DataOutputStream dos = new DataOutputStream(_socket.getOutputStream());
                dos.writeInt(n);
                dos.flush();



            // Show the server response
            DataInputStream din = new DataInputStream(_socket.getInputStream());
            int ServerNumber= din.readInt();

            System.out.println(ServerNumber);
            String serverRandomString=din.readUTF();
            System.out.println(serverRandomString);


            din.close();
            dos.close();
        }

这是一个简单的套接字通信。我的服务器是用 java 编写的,但我想尝试用 C 编写客户端。在 C 中有 DataOutputStream 和 DataInputStream 的替代方法吗?

最佳答案

简短的回答:不,不是真的。套接字在 C 中比在大多数现代语言中需要更多的努力。不幸的是,没有可用的“标准”套接字库 [如果您正在编写跨平台应用程序,您也必须在差异之间进行补偿],并且可用的套接字库不像 java 中的套接字编程那样直接。您必须从头开始,尽管网上有很多 c/c++ 套接字教程。您甚至可以找到一个好的第三方库来帮助简化它。在这里并不是要劝阻您,这并不难弄清楚,只是用 Java 做起来非常容易。

关于java - C 中 DataOutputStream 和 DataInputStream 的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16343454/

相关文章:

c - 为什么函数 shmget (key_t , size_t , int ) 在 Netbeans 中返回 -1 但在终端编译时却运行正常?

c - for循环中的多个增量是什么意思?

c++ - 调整缓冲区大小时 OpenGL 失败

Java 签名的小程序证书仅在 mac OSX10.7 (Lion) 上被撤销

java - Android Studio 如果字段为空

java - 为什么 Idea lint 警告缺少 `isPresent()` 检查 `orElseGet` ?

java - 使用扫描仪出现 NullPointerException

sockets - Netlink套接字中的msg的len错误

通过 Socket 的 Java Swing 定时器同步

python - 如何在 python 服务器中的某个时间间隔后调用函数?