401 / 357 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
1

Как написать клиент-серверное приложение?

09.08.2011, 19:04. Показов 2241. Ответов 8
Метки нет (Все метки)

Хочу написать такую программу. Есть сервер у меня на компютере и есть клиент на другом компютере. Клиент посылает какую-то строку серверу а сервер в ответ посылает другую строку. Я такое уже писал но клиент и сервер были на одном компютере.

Добавлено через 26 минут
Вот мой код для клиента и сервера которые на одном компе
сервер
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <winsock2.h>
#include <stdio.h>
int main(void)
{
        WORD v=MAKEWORD(2,0);
        WSADATA d;
        int e=WSAStartup(v,&d);
        if (e)
        {
                perror("error initializing winsock");
                return 1;
        }
        struct sockaddr_in local;
        int s;
        int s1;
        int rc;
        char buf[1];
        local.sin_family=AF_INET;
        local.sin_port=htons(7500);
        local.sin_addr.s_addr=htonl(INADDR_ANY);
        s=socket(AF_INET,SOCK_STREAM,0);
        if (s<0)
        {
                perror("error calling socket");
                return 1;
        }
        rc=bind(s,(struct sockaddr *)&local,sizeof(local));
        if (rc<0)
        {
                perror("error calling bind");
                return 1;
        }
        rc=listen(s,5);
        if (rc)
        {
                perror("error calling listen");
                return 1;
        }
        s1=accept(s,NULL,NULL);
        if (s1<0)
        {
                perror("error calling accept");
                return 1;
        }
        rc=recv(s1,buf,1,0);
        if (rc<=0)
        {
                perror("error calling recv");
                return 1;
        }
        printf("%c\n",buf[0]);
        rc=send(s1,"2",1,0);
        if (rc<=0)
                perror("error calling send");
        if (closesocket(s))
                perror("error calling closesocket");
        if (closesocket(s1))
                perror("error calling closesocket");
        WSACleanup();
        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
40
41
42
43
44
45
46
47
#include <winsock2.h>
#include <stdio.h>
int main(void)
{
        WORD v=MAKEWORD(2,0);
        WSADATA d;
        int e=WSAStartup(v,&d);
        if (e)
        {
                perror("error initializing winsock");
                return 1;
        }
        struct sockaddr_in peer;
        int s;
        int rc;
        char buf[1];
        peer.sin_family=AF_INET;
        peer.sin_port=htons(7500);
        peer.sin_addr.s_addr=inet_addr("127.0.0.1");
        s=socket(AF_INET,SOCK_STREAM,0);
        if (s<0)
        {
                perror("error calling socket");
                return 1;
        }
        rc=connect(s,(struct sockaddr *)&peer,sizeof(peer));
        if (rc)
        {
                perror("error calling connect");
                return 1;
        }
        rc=send(s,"1",1,0);
        if (rc<=0)
        {
                perror("error calling send");
                return 1;
        }
        rc=recv(s,buf,1,0);
        if (recv<=0)
                perror("error calling recv");
        else
                printf("%c\n",buf[0]);
        if (closesocket(s))
                perror("error calling closesocket");
        WSACleanup();
        return 0;
}
Что тут поменять???

Добавлено через 12 минут
Ну хоть ктонибудь ответте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.08.2011, 19:04
Ответы с готовыми решениями:

Как написать клиент-серверное приложение
Доброго времени суток. Создал аналогичную тему в раздете про си++ билдер, но там что-то тишина,...

Как написать клиент-серверное приложение
Как сделать так чтоб программа обменивалась данными с другой програмой через глобальную сеть....

Как написать клиент-серверное приложение
Привет всем, хочу написать сервер.Пересмотрел кучу уроков и статей и т.д. ,но там нет подробного...

Как написать простое клиент-серверное приложение
Объясните как написать эл. приложение, которое просто отправляет какое нибудь сообщение. Не могу...

8
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
09.08.2011, 19:13 2
Вместо peer.sin_addr.s_addr=inet_addr ("127.0.0.1"); записать ip адрес сервера? Нет?
1
401 / 357 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
09.08.2011, 19:44  [ТС] 3
Deviaphan, я непонемаю какой адрес писать, любой что ли?

Добавлено через 28 минут
Пожалуйста скажите какой адрес написать. Уже две недели над этим бюсь.
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
09.08.2011, 19:50 4
127,0,0,1 это локальный адрес компа на котором программа запущена (на самом деле не так, но пофиг).
Тебе нужно записать ip адрес сервера. Т.е. адрес компа, где запущен сервер. Я понятия не имею, какой он, в настройках соединения посмотри.
1
401 / 357 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
09.08.2011, 19:50  [ТС] 5
Deviaphan, какого соединения?
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
09.08.2011, 19:55 6
Интернет-соединения.
Как ты взялся писать клиент-серверное приложение, если ip адрес компьютера узнать не можешь?
Тяжко тебе будет.)))
0
401 / 357 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
09.08.2011, 19:56  [ТС] 7
Deviaphan, как я понял нужно вместо 127.0.0.1 просто добавить ip компютера?
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
09.08.2011, 20:06 8
Да. Того, на котоорм сервер запущен.
Это предположительно, т.к. я понятия не имею, как там что работает.
0
4860 / 3282 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.08.2011, 06:07 9
C
1
    peer.sin_addr.s_addr = inet_addr("127.0.0.1");
вот этот адрес загружай из файла
потом напишешь ping и имя сервера и он покажет тебе ip
занесёшь его в файл
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2011, 06:07
Помогаю со студенческими работами здесь

Как написать простое клиент-серверное приложение
дайте ссылки, литературу в которой можно будет прочитать о том, как создать онлайн проект на visual...

Как написать клиент-серверное приложение для управления COM портом
Здравствуйте, Написал в Visual Studio 2010 программу для работы с COM портом - отправка...

Как можно написать клиент-серверное приложение, работающее в локальной сети?
Как можно написать клиент-серверное приложение работающее в локальной сети? Ну например на одном из...

Клиент-серверное приложение: как написать реакцию сервера на каждое сообщение от клиента
В общем пытаюсь разобраться с сетью в C#, условная задача написать сервер - который осуществляет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru