Thanks!
, but im getting an error saying that when I
Code:
recv(theSocket,buffer,256,0);
I get this error
Code:
WSAENOTCONN
10057
Socket is not connected.
A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using sendto) no address was supplied. Any other type of operation might also return this error—for example, setsockopt setting SO_KEEPALIVE if the connection has been reset.
Im trying to connect to myself.. Doesnt bind work on a connectionless conection..?
Code:
bind(theSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr));
Oh, when I use connect..
Code:
connect(theSocket, (LPSOCKADDR)&serverInfo,sizeof(struct sockaddr));
I get this error
Code:
WSAECONNREFUSED
10061
Connection refused.
No connection could be made because the target computer actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.
Am I missing something? Do I have to set up another program for accepting this connect to myself??
How do i connect to myself to read incomming packets from a target port?
Thanks
My Sloppy Prog
Code:
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include <iostream.h>
#define NETWORK_ERROR 0
int main(void)
{
WORD sockVersion;
WSADATA wsaData;
int nret;
sockVersion = MAKEWORD(1, 1);
WSAStartup(sockVersion, &wsaData);
LPHOSTENT hostEntry;
hostEntry = gethostbyname("192.168.2.101");
if (!hostEntry) {
nret = WSAGetLastError();
printf("gethostbyname()");
WSACleanup();
return NETWORK_ERROR;
}
SOCKET theSocket;
theSocket = socket(AF_INET,
SOCK_STREAM,
IPPROTO_TCP);
if (theSocket == INVALID_SOCKET) {
nret = WSAGetLastError();
printf("socket()");
WSACleanup();
return NETWORK_ERROR;
}
SOCKADDR_IN serverInfo;
serverInfo.sin_family = AF_INET;
serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list);
serverInfo.sin_port = htons(80);
nret=bind(theSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr));
if (nret == SOCKET_ERROR) {
nret = WSAGetLastError();
cout<<"bind()"<<nret;
WSACleanup();
return NETWORK_ERROR;
}
nret= connect(theSocket,
(LPSOCKADDR)&serverInfo,
sizeof(struct sockaddr));
if (nret == SOCKET_ERROR) {
nret = WSAGetLastError();
cout<<"connect()"<<nret;
WSACleanup();
return NETWORK_ERROR;
}
///////////////////////////////////////////////////////////////////////////
///////////////////////////////RECV////////////////////////////////////////
char *buffer = new char[256];
while(1)
{
nret = recv(theSocket,buffer,256,0);
if (nret == SOCKET_ERROR)
{
int k = WSAGetLastError();
cout<<"recv()"<<k<<endl;
WSACleanup();
return NETWORK_ERROR;
}
else
{
for ( int i = 0 ; i <sizeof(buffer) ; i++ )
{
cout << (int)buffer[i];
}
}
delete [] buffer;
}
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////RECV///////////////////////////////////////
closesocket(theSocket);
WSACleanup();
return 0;
}