Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибки при создании сокета 
V
    Опции темы
UMmi
Дата 26.3.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



Здравствуйте! По данной статье требуется написать socket. 

Код

#include <winsock2.h>
#include "windows.h"WINAPI
#pragma comment(lib,"wsock32.lib")
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, 
                                                         int nCmdShow){
WSADATA WsaData;    
int err = WSAStartup (0x0101, &WsaData);    
if (err == SOCKET_ERROR){
    return 1;
    }
int s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);    

SOCKADDR_IN sin;    
sin.sin_family = AF_INET;    
sin.sin_port = htons(3000);    
sin.sin_addr.s_addr = INADDR_ANY;
err = bind( s, (LPSOCKADDR)&sin, sizeof(sin) );
err = listen( s, SOMAXCONN);
while (1){
SOCKADDR_IN from;        
int fromlen=sizeof(from);        
int sclient = accept(s,(struct sockaddr*)&from, &fromlen);        
char getchar [2];        
getchar [1]='\0';        
int end=0;        
char t1[100];        
char t2[500];        
char * str=t1;        
char * rezstr=t2;        
strcpy(str,"");        
strcpy(rezstr,"");        
while((end==0)&&(recv(sclient,getchar,sizeof(
                              getchar[0]),0)!=SOCKET_ERROR)){
if (getchar[0]=='\n'){
   if (strcmp(str,"--END--")==0){
       end=1;
        }else 
    {strcat(str,"\n");
     strncat(rezstr,str,strlen(str));
     strcpy(str,"");
     };
    }else {
    strcat(str,getchar);
  };
};

MessageBox (NULL,rezstr,"",MB_OK);
strcpy(str,"Server OK.\n--END--\n");        
send(sclient,str,strlen(str),0);
closesocket(sclient);};    return 0;  };


Borland 6 выдает следующие ошибки:

[C++ Error] sett.cpp(8): E2356 Type mismatch in redeclaration of '__stdcall WinMain(void *,void *,char *,int)'
[C++ Error] winbase.h(1267): E2344 Earlier declaration of '__stdcall WinMain(void *,void *,char *,int)'
[C++ Warning] sett.cpp(62): W8066 Unreachable code

Подскажите, пожалуйста, как исправить ошибки?


PM   Вверх
Greeen
Дата 27.3.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



UMmi, до чего люди доходят. АААААААААА smile Код форматировать - не умеем, копипастить - не умеем
Код

#include <winsock2.h>
#include "windows.h"
#pragma comment(lib,"wsock32.lib")
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
WSADATA WsaData;    
int err = WSAStartup (0x0101, &WsaData);    
if(err == SOCKET_ERROR)
{
    return 1;
}
int s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);    
SOCKADDR_IN sin;    
sin.sin_family = AF_INET;    
sin.sin_port = htons(3000);    
sin.sin_addr.s_addr = INADDR_ANY;
err = bind( s, (LPSOCKADDR)&sin, sizeof(sin) );
err = listen( s, SOMAXCONN);
while (1)
{
SOCKADDR_IN from;        
int fromlen=sizeof(from);        
int sclient = accept(s,(struct sockaddr*)&from, &fromlen);        
char getchar [2];        
getchar [1]='\0';        
int end=0;        
char t1[100];        
char t2[500];        
char * str=t1;        
char * rezstr=t2;        
strcpy(str,"");        
strcpy(rezstr,"");        
while((end==0) && (recv(sclient,getchar,sizeof(getchar[0]),0)!=SOCKET_ERROR))
{
if(getchar[0]=='\n')
{
if(strcmp(str,"--END--")==0)
{
   end=1;
}
else 
{
strcat(str,"\n");
strncat(rezstr,str,strlen(str));
strcpy(str,"");
}
}
else
{
strcat(str,getchar);
}
}
MessageBox (NULL,rezstr,"",MB_OK);
strcpy(str,"Server OK.\n--END--\n");        
send(sclient,str,strlen(str),0);
closesocket(sclient);
}
return 0;
}

Сам додумался после } точку с запятой ставить?  smile 


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
UMmi
Дата 27.3.2007, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 5.11.2006
Где: МО

Репутация: нет
Всего: 0



Спасибо, Green! Не суди строго, буду учиться...  smile 
PM   Вверх
Greeen
Дата 27.3.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



UMmi, пожалуйста. Надеюсь будешь  smile 


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
ptr
Дата 28.3.2007, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



UMmi, пометь тему решенной.


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.2328 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.