C ++服务器Java客户端套接字

时间:2017-10-11 12:41:26

标签: java c++ sockets server client

我写了一个小客户端服务器应用程序,它连接c ++服务器和java客户端。现在,当我从服务器向客户端发送字符串时,一切正常,但是当我从客户端向服务器发送字符串时,我得到了这个输出:

Hello╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠└Ű=Ď

这是我的C ++服务器代码:

int main()
{
    long SUCCESSFUL;
    WSAData WinSockData;
    WORD DLLVERSION;

    DLLVERSION = MAKEWORD(2, 1);
    SUCCESSFUL = WSAStartup(DLLVERSION, &WinSockData);

    SOCKADDR_IN ADDRESS;
    int AddressSize = sizeof(ADDRESS);

    SOCKET sock_LISTEN;
    SOCKET sock_CONNECTION;

    sock_CONNECTION = socket(AF_INET, SOCK_STREAM, NULL);
    ADDRESS.sin_addr.s_addr = inet_addr("127.0.0.1");
    ADDRESS.sin_family = AF_INET;
    ADDRESS.sin_port = htons(8085);

    sock_LISTEN = socket(AF_INET, SOCK_STREAM, NULL);   
    bind(sock_LISTEN, (SOCKADDR*)&ADDRESS, sizeof(ADDRESS));
    listen(sock_LISTEN, SOMAXCONN);

    char msg[200];
    string MSG;

    for (;;)
    {
        cout << "\n\tSERVER: Waiting for incoming connections...";

        if (sock_CONNECTION = accept(sock_LISTEN, (SOCKADDR*)&ADDRESS, &AddressSize))
        {
            cout << "\n\tA connection was found!" << endl;
            SUCCESSFUL = recv(sock_CONNECTION, msg, sizeof(msg), NULL);
            MSG = msg;
            cout << MSG << endl;
            closesocket(sock_CONNECTION);
        }
    }
}

这是我的Java客户端代码:

public class Client {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("127.0.0.1", 8085);
            Scanner scanner = new Scanner(socket.getInputStream());
            PrintStream printStream = new PrintStream(socket.getOutputStream());
            printStream.println("Hello");
        } catch (IOException ex) {
            System.out.println(ex);
        }
    }
}

0 个答案:

没有答案