Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2010, 19:20   #1
master3763
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 78
По умолчанию Клиент и серверное прилложение..

Здравствуйте ! Очень нужно написат приложение на C++ которым можно было бы обменижатсиа данными через интернет . на форуме нашел вот эту статью :

http://programmersforum.ru/showthread.php?t=68668

Это думаю то что мне нужно , проблема в том что я негде не могу достать подключаемый файл "sys/socket.h"

Во время компиляции выводит :
c:\client i server\client i server.cpp(7) : fatal error C1083: Cannot open include file: 'sys/socket.h': No such file or directory
Error executing cl.exe.

Где можно вообше качать библиотеки .h , . dll , .lib и все подобное ?
master3763 вне форума Ответить с цитированием
Старый 06.07.2010, 00:42   #2
kogemrka
Форумчанин
 
Аватар для kogemrka
 
Регистрация: 08.01.2010
Сообщений: 165
По умолчанию

В статье, на которую ты привёл ссылку, описываются сокеты Беркли. А компилировать программу ты пытаешься под Windows, очевидно же.

В Windows тебе необходимо использовать библиотеку WinSock. Она похожа на сокеты Беркли (можно даже сказать, что создана по образу и подобию), но имеет свои нюансы.

Лови:
http://kpnc.opennet.ru/sock.pdf - "Самоучитель игры на WinSock". На мой взгляд, неплохое руководство на русском языке, в котором всё подробно разжёвано.

http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx - документация от microsoft (английский язык)
kogemrka вне форума Ответить с цитированием
Старый 06.07.2010, 05:54   #3
master3763
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 78
По умолчанию

Сейчас понятно почему :-) Нашел ещо во такую интересную статью :
http://www.citforum.ru/book/cook/winsock.shtml
Вроде цомпиляция проходит успешно , только вот для получения полноценной программы необходима библиотека ws2_32.lib иначе выдает
вот эту вот строку
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/client win.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

client win.exe - 2 error(s), 0 warning(s)

Где ее достать ? Где вообше люди качают библиотеки для C++ :-) ?
master3763 вне форума Ответить с цитированием
Старый 06.07.2010, 06:50   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну вообще то они все со студией есть+можно создать самому
в начале кода(там где инклюды) пишем.
Код:
#pragma comment(lib,"ws2_32.lib")
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.07.2010, 10:22   #5
master3763
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 78
По умолчанию

Странно то что у меня выводит ошибки :
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/client win.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
что с ним делать ? всю ночь ломал голову над етим :-)
по ходу дело нет библиотеки , точно сказать не могу..
Работаю в Visual C++ 6 .
master3763 вне форума Ответить с цитированием
Старый 06.07.2010, 10:30   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

При создании проекта выбираешь "Win32 Console Application"?
profi вне форума Ответить с цитированием
Старый 06.07.2010, 10:33   #7
master3763
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 78
По умолчанию

Да это выбираю. Хочу сделать клиент серверное приложение , вот мой код что тут не то ?:

Цитата:
// ?????? ???????? TCP ???????
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>


#define PORT 666
#define SERVERADDR "127.0.0.1"


int main(int argc, char* argv[])
{
char buff[1024];
printf("TCP DEMO CLIENT\n");

// ??? 1 - ????????????? ?????????? Winsock
if (WSAStartup(0x202,(WSADATA *)&buff[0]))
{
printf("WSAStart error %d\n",WSAGetLastError());
return -1;
}

// ??? 2 - ???????? ??????
SOCKET my_sock;
my_sock=socket(AF_INET,SOCK_STREAM, 0);
if (my_sock < 0)
{
printf("Socket() error %d\n",WSAGetLastError());
return -1;
}

// ??? 3 - ????????? ??????????

// ?????????? ????????? sockaddr_in
// ???????? ?????? ? ????? ???????
sockaddr_in dest_addr;
dest_addr.sin_family=AF_INET;
dest_addr.sin_port=htons(PORT);
HOSTENT *hst;

// ?????????????? IP ?????? ?? ??????????? ?
// ??????? ??????
if (inet_addr(SERVERADDR)!=INADDR_NONE )
dest_addr.sin_addr.s_addr=inet_addr (SERVERADDR);
else
// ??????? ???????? IP ????? ?? ?????????
// ????? ???????
if (hst=gethostbyname(SERVERADDR))
// hst->h_addr_list ???????? ?? ?????? ???????,
// ? ?????? ?????????? ?? ??????
((unsigned long *)&dest_addr.sin_addr)[0]=
((unsigned long **)hst->h_addr_list)[0][0];
else
{
printf("Invalid address %s\n",SERVERADDR);
closesocket(my_sock);
WSACleanup();
return -1;
}

// ????? ??????? ??????? – ???????? ??????????
// ??????????
if (connect(my_sock,(sockaddr *)&dest_addr,
sizeof(dest_addr)))
{
printf("Connect error %d\n",WSAGetLastError());
return -1;
}

printf("?????????? ? %s ??????? ???????????\n\
Type quit for quit\n\n",SERVERADDR);

// ??? 4 - ?????? ? ???????? ?????????
int nsize;
while((nsize=recv(my_sock,&buff[0],
sizeof(buff)-1,0))
!=SOCKET_ERROR)
{
// ?????? ??????????? ???? ? ????? ??????
buff[nsize]=0;

// ??????? ?? ?????
printf("S=>C:%s",buff);

// ?????? ???????????????? ???? ? ??????????
printf("S<=C:"); fgets(&buff[0],sizeof(buff)-1,
stdin);

// ???????? ?? "quit"
if (!strcmp(&buff[0],"quit\n"))
{
// ?????????? ?????
printf("Exit...");
closesocket(my_sock);
WSACleanup();
return 0;
}

// ???????? ?????? ??????? ???????
send(my_sock,&buff[0],nsize,0);
}

printf("Recv error %d\n",WSAGetLastError());
closesocket(my_sock);
WSACleanup();
return -1;
}
master3763 вне форума Ответить с цитированием
Старый 06.07.2010, 10:35   #8
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Здесь я не вижу строчки
Код:
#pragma comment(lib,"ws2_32.lib")
, которую тебе посоветовал вставить в код Пепел Феникса.
profi вне форума Ответить с цитированием
Старый 06.07.2010, 10:41   #9
master3763
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 78
По умолчанию

И так пробовал с
#pragma comment(lib,"ws2_32.lib")
но ничего в ошибках не меняется .
master3763 вне форума Ответить с цитированием
Старый 06.07.2010, 10:45   #10
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Я не знаю как ты там создавал проект, я проверил только что, код полностью рабочий. Думаю тебе нужно разобраться в своем компиляторе.
Код:
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>

#pragma comment(lib,"ws2_32.lib")


#define PORT 666
#define SERVERADDR "127.0.0.1"


int main(int argc, char* argv[])
{
char buff[1024];
printf("TCP DEMO CLIENT\n");
............................

Последний раз редактировалось profi; 06.07.2010 в 10:48.
profi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
клиент/серверное приложение + MySQL Vohakisa БД в Delphi 3 19.05.2010 11:20
Клиент-серверное приложение Куралай_ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.05.2010 10:00
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
Клиент-серверное приложение: Callback MaTBeu Общие вопросы C/C++ 13 02.06.2008 20:27
Клиент-серверное приложение veryseldom Работа с сетью в Delphi 8 20.08.2007 19:57