1. 程式人生 > 遊戲 >超級英雄砍殺遊戲《Superfuse》公佈 年內登陸PC

超級英雄砍殺遊戲《Superfuse》公佈 年內登陸PC

 

 

 

 

 

伺服器

#include<stdio.h>
#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <string.h>
#include <unistd.h>

#include <arpa/inet.h>

int main(void)
{
    int skt = socket(AF_INET, SOCK_DGRAM, 0);
    
    if(-1 == skt)
    {
        printf(
"socker error\n"); return -1; } //將IP和埠號存入結構體 struct sockaddr_in sddr; sddr.sin_family = AF_INET; sddr.sin_port = htons(6666); sddr.sin_addr.s_addr = inet_addr("0.0.0.0"); int len = sizeof(struct sockaddr_in); //將套接字和IP、埠號進行繫結 int ret = bind(skt, (struct
sockaddr *)&sddr, sizeof(sddr)); if(-1 == ret) { printf("bind error\n"); return -1; } char buf[100] = {'\0'}; while(1) { recvfrom(skt, buf, sizeof(buf), 0, (struct sockaddr *)&sddr, &len);//0表示阻塞 puts(buf); sendto(skt, buf, sizeof
(buf), 0, (struct sockaddr *)&sddr, len);//0表示阻塞 memset(buf, 0,sizeof(buf)); } close(skt); return 0; }

客戶端

#include<stdio.h>
#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <string.h>
#include <unistd.h>

#include <arpa/inet.h>



int main(void)
{
    int skt = socket(AF_INET, SOCK_DGRAM, 0);
    
    if(-1 == skt)
    {
        printf("socker error\n");
        return -1;
    }
    //將IP和埠號存入結構體
    struct sockaddr_in sddr;
    sddr.sin_family     = AF_INET;
    sddr.sin_port       = htons(6666);
    sddr.sin_addr.s_addr    = inet_addr("192.168.4.159");
    int len = sizeof(struct sockaddr_in);

    char buf[100] = {'\0'};
    while(1)
    {
        fgets(buf,100,stdin);
        sendto(skt, buf, sizeof(buf), 0, (struct sockaddr *)&sddr, len);
        memset(buf, 0,sizeof(buf));
        recvfrom(skt, buf, sizeof(buf), 0, (struct sockaddr *)&sddr, &len);
        puts(buf);
    }
    close(skt);
    return 0;
}