服务器客户端消息发送

时间:2020-04-14 09:12:02

标签: c server client

你好,我尝试制作一个服务器客户端,cliet发送“ ping”一词,服务器用“ pong”回复。我虽然在我的计算机上运行它,但不返回任何内容。你能帮我一下吗?预先谢谢你。

这是服务器代码:


#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main()
{
    int server_socket;
    server_socket = socket(AF_INET,SOCK_STREAM,0);
    struct sockaddr_in server_address;
    int addrlen = sizeof(server_address);
    server_address.sin_family = AF_INET;
    server_address.sin_port = htons(9000);
    server_address.sin_addr.s_addr = INADDR_ANY;
    bind (server_socket, (struct sockaddr*) &server_address, sizeof(server_address));
    int client_socket;
    listen(server_socket, 3);
    client_socket=accept(server_socket, NULL, (socklen_t*)&addrlen);
    char response[256];
    recv(client_socket, &response, sizeof(response), 0);
 printf("%s",response);
    char server_message[256]="pong";
      send(client_socket,server_message,sizeof(server_message),0);
    shutdown (client_socket, SHUT_RDWR);
    close (client_socket);
    shutdown (server_socket, SHUT_RDWR);
    close (server_socket);
    return (0);
}

这是客户端代码:


#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main()
{
    int network_socket;
    network_socket = socket(AF_INET,SOCK_STREAM, 0);

    struct sockaddr_in server_address;
    server_address.sin_family = AF_INET;
    server_address.sin_port = htons(9000);
    server_address.sin_addr.s_addr = INADDR_ANY;
    int connection_status = connect(network_socket, (struct sockaddr*)&server_address, sizeof(server_address));
    if (connection_status == -1) { printf("ERROR"); }

    char maw[256]=ping;
    send(network_socket, maw, sizeof(maw), 0);
    char server_response[256];
    recv(network_socket,&server_response,sizeof(server_response),0);
    printf("response is:%s",server_response);
    shutdown (network_socket, SHUT_RDWR);
    close(network_socket);
    return(0);
}

0 个答案:

没有答案