void WaitSocket()
{
SocketGetHostName();
[COLOR="Red"]SOCKET servsocket;
servsocket = socket(PF_INET,SOCK_STREAM,0);
if (servsocket==INVALID_SOCKET)
{
printf("Error create socket :-(\n");
}[/COLOR]
closesocket(servsocket);
}
Ошибка bind
не канает bind:mad:!
Вот код:
...............................................................................
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include "winsock.h"
#pragma hdrstop
#define PORT_ADDR 666
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
SOCKET servsocket;
int rc;
const int WINSOCK_VERSION = 0x0101;
void SocketGetHostName()
{
char chInfo[64];
if (gethostname(chInfo,sizeof(chInfo)))
{
printf("Not local host\n");
} else {
printf(chInfo);
printf(" GetHostName OK !!!!!\n");
}
}
void StartSocket()
{
WSADATA wsaData;
if (WSAStartup(WINSOCK_VERSION, &wsaData))
{
printf ("winsock not bi initialized !\n");
WSACleanup();
}
else
{
cout << "Winsock initialized!\n";
}
}
void WaitSocket()
{
SocketGetHostName();
SOCKET servsocket;
servsocket = socket(PF_INET,SOCK_STREAM,0);
if (servsocket==INVALID_SOCKET)
{
printf("Error create socket :-(\n");
}
closesocket(servsocket);
}
void StopSocket()
{
if (WSACleanup())
printf("Error Cleapir\n");
else
printf("Cleapir Good !!!!!\n");
}
int main()
{
StartSocket();
SOCKADDR_IN socketaddr;
socketaddr.sin_family = AF_INET;
socketaddr.sin_addr.s_addr = INADDR_ANY;
socketaddr.sin_port = htons(666);
rc = bind (servsocket,(LPSOCKADDR)&socketaddr,sizeof ( socketaddr));
if ( rc == 0)
{
cout << "Bind OK!\n";
}
else
{
cout << "Bind faild!\n";
}
WaitSocket();
StopSocket();
system("pause");
return 0;
}
.................................................................
Ну и кого ты тут биндить собрался? Сокет-то не создан. И код оформи а то не будем помогать.
-
SOCKET servsocket;
Тав вот не создан:) SOCKET servsocket = socket(...); вот тогда создан
Цитата: karimchik
Как не создан:confused:
-
SOCKET servsocket;
-
SOCKET servsocket;
Код:
Функция этой функции мне не понятна :)) то что красным перед биндом должно быть ;)
[quote=MSDN]
bind Function
The bind function associates a local address with a socket.
......
Return Value
If no error occurs, bind returns zero. Otherwise, it returns SOCKET_ERROR, and a specific error code can be retrieved by calling WSAGetLastError.
[/quote]