Форум программистов, компьютерный форум CyberForum.ru

Как создать сетевое приложение - C++

Восстановить пароль Регистрация
 
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
05.01.2013, 21:48     Как создать сетевое приложение #1
Вообщем как связать две элементарных программы с разных компьютеров подключённых к интернету?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2662 / 1673 / 157
Регистрация: 13.01.2012
Сообщений: 6,228
05.01.2013, 22:51     Как создать сетевое приложение #2
сокетами. у сервера должен быть настоящий IP (не за proxy и не за NAT) либо на машинах должен быть поднят VPN.
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
06.01.2013, 00:34  [ТС]     Как создать сетевое приложение #3
А по подробней?
vxg
Модератор
 Аватар для vxg
2662 / 1673 / 157
Регистрация: 13.01.2012
Сообщений: 6,228
06.01.2013, 12:55     Как создать сетевое приложение #4
клиент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//------------------------------------------------------------------------------
#include <winsock>
#include <stdio.h>
#include <string.h>
//------------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    WSADATA wsa_data;
    if (WSAStartup(0x101, &wsa_data) || wsa_data.wVersion != 0x101) return -1;
 
    SOCKET s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if (s == INVALID_SOCKET) return -1;
 
    SOCKADDR_IN sa;
    sa.sin_family = AF_INET;
    sa.sin_port = htons(2000);
    sa.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
 
    char buffer[1024];
    printf("message=");
    scanf("%s", buffer);
    if
    (
        sendto
        (
            s,
            buffer, strlen(buffer) + 1,
            0,
            (SOCKADDR *)&sa, sizeof(sa)
        ) == SOCKET_ERROR
    )
        return -1;
 
    closesocket(s);
 
    WSACleanup();
 
    system("pause");
    return 0;
}
сервер
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//------------------------------------------------------------------------------
#include <winsock>
#include <stdio.h>
//------------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    WSADATA wsa_data;
    if (WSAStartup(0x101, &wsa_data) || wsa_data.wVersion != 0x101) return -1;
 
    SOCKET s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if (s == INVALID_SOCKET) return -1;
 
    SOCKADDR_IN sa;
    sa.sin_family = AF_INET;
    sa.sin_port = htons(2000);
    sa.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
 
    if (bind(s, (SOCKADDR *)&sa, sizeof(sa)) == SOCKET_ERROR) return -1;
 
    SOCKADDR_IN nsa;
    int sizeof_nsa = sizeof(nsa);
 
    char buffer[1024];
    int buffer_size = sizeof(buffer);
    if
    (
        recvfrom(s, buffer, buffer_size, 0, (SOCKADDR *)&nsa, &sizeof_nsa) ==
            SOCKET_ERROR
    )
        return -1;
    printf("message=%s\n", buffer);
 
    closesocket(s);
 
    WSACleanup();
 
    system("pause");
    return 0;
}
клиент шлет серверу введенное слово (до пробела)
Yandex
Объявления
06.01.2013, 12:55     Как создать сетевое приложение
Ответ Создать тему
Опции темы

Текущее время: 11:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru