PDA

Tam Sürümünü Görmek İçin : wsock bind( ) !!!


ceeyt
05/04/2005, 01:50
WSADATA wsaData;
memset(&wsaData,0,sizeof(WSADATA));

if(WSAStartup(MAKEWORD(1,1),&wsaData) != 0)
{
// ERROR_MESBOX("wsastartup...")
return -1;
}

static SOCKET sockConnect;
sockConnect = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);


if(INVALID_SOCKET == sockConnect)
{
// ERROR_MESBOX("socket...")
return -1;
}

static SOCKADDR_IN serverSocket_listener;
ZeroMemory(&serverSocket_listener,sizeof(SOCKADDR_IN));

serverSocket_listener.sin_family = AF_INET;
serverSocket_listener.sin_port = htons(PORT_NUMBER);

serverSocket_listener.sin_addr.S_un.S_un_b.s_b1 = 192;
serverSocket_listener.sin_addr.S_un.S_un_b.s_b2 = 168;
serverSocket_listener.sin_addr.S_un.S_un_b.s_b3 = 0;
serverSocket_listener.sin_addr.S_un.S_un_b.s_b1 = 55;

if(SOCKET_ERROR == bind(sockConnect,((SOCKADDR *)
(&serverSocket_listener)),sizeof(SOCKADDR_IN)))
{
MessageBox(NULL,"bind... ","error",MB_OK);
return -1;
}

Sadece bu satirlari iceren bir fonksiyon yazip, kodu derledigimde sadece binding kisminda hata veriyor.
serverSocket_listener veya sockConnect nesneleri ile ilgili hata sanirim yok, ama biryerlerde yanlis yapiyor olmaliiym.

ilk defa winsock kullaniyorum, yanlis yaptigim nokta nedir acaba ?_?


Volkan Uzun
05/04/2005, 11:34
ne hatası alıyorsun

Euclides
05/04/2005, 13:05
sanırım özel IP kullanman bir problem olabilir
.S_un.S_addr = INADDR_ANY;
denemeni öneririm

ceeyt
05/04/2005, 21:57
ne hatası alıyorsunbind( ) islevi SOCKET_ERROR donduruyor(DU) ;)

sanırım özel IP kullanman bir problem olabilir
.S_un.S_addr = INADDR_ANY;
denemeni öneririm Dedigin gibi olmus, herhangi bir IP icin denedigimde dogru bicimde calisti.

herkese cok tesekkur ederim...

Sadece 192.168.0.55 in baglanmasini istiyorsam ne yapmam gerekir ?
Router lardaki "access list" benzeri islev goren birsey mi yazayim ?_?

Euclides
06/04/2005, 20:12
ceeyt senin pC'indeki NDIS sadece senin PC'deki bir adrese bağlanabilir...

eğer amacın port redirect veya filering tarzı bir şey ise driver yazman gerekiyor
www.sf.net'de örneği olması lazım