|
rahuljin wrote: can u tell me the changes i should make so that it can work ?
There are no changes to make in your code. I just ran it and it works as expected.
|
|
|
|
|
which port are you using ?
if i use a port which is used by other program like utorrent, it works only when i run utorrent, else dont. if i put some other port number, it shows the errors.
i am using kaspersky internet security 2009 with windows 7rc and visual studio 2008. windows firewall is stopped. i also checked with KIS stopped, but no success.
now what to do ?
|
|
|
|
|
sorry, o/night here in Aus... as per Led Mike, there's nothing wrong with your code. Now you need to develop a server or grab some test code from someone's project to build one.
TCP programming involves two parts - a client, which you've got, and server, listening on a port - you still havnt indicated that you have a server listening to/on a connection, so Im not sure what sorta results you expect.
'g'
|
|
|
|
|
do u mean that i should write another program which listen to this port ??
also, if i want to send some information using the send() function, can i use the same port or i have to use another port for that ?
|
|
|
|
|
rahuljin wrote: do u mean that i should write another program which listen to this port ??
yes - the whole point of connecting to something is something must be waiting/listening on the other end ! .. maybe you could use something like http://www.aprelium.com/abyssws/[^]
rahuljin wrote: also, if i want to send some information using the send() function, can i use the same port or i have to use another port for that ?
if you are in the connected state, you have a channel open and you can send to and receive from it - depending on whats on the other end - the simplest test of your code is whats known as an echo server - it reads what you send it and sends you back the same info - see here for an example - I dont get why you're asking about another port
http://www.paulgriffiths.net/program/c/echoserv.php[^]
and here
http://www.csc.villanova.edu/~mdamian/Sockets/TcpSockets.htm[^]
I hate to say this, but it sounds like you're a little out of your depth - this sort of material is covered in lots of network programming books, and there's plenty out there on the net
Maybe you should spent some time doing a bit more research
|
|
|
|
|
thanks for the help. this is the first time i am writing something about tcp ip. i tried to get a book for tcp ip at my place but didn't find any.
i will try to read online.
thanks again.
|
|
|
|
|
'Connection refused' means that port is not active (no TCP server using the port number).
'Network is unreachable' might be meant some firewall had blocked the packet.
Can you check the firewall settings?
|
|
|
|
|
i have set it as trusted application and granted all rights.
i also have tried with firewall off, but the same result.
|
|
|
|
|
is there any way to give an address to bind() ?? i want that the program only except or recevice information from a specific address only. but when i try it gives an error - 10049. how should i resolve it ?
|
|
|
|
|
Post your code to bind() here, pls. And also, the IP address of the pc that you executed the program.
|
|
|
|
|
here is the member funtion ----
int getServer::getInfo()
{
ifstream ifile(path);
if(ifile)
{
ifile.getline(sss, 80);
sockVersion = MAKEWORD(1, 1);
WSAStartup(sockVersion, &wsaData);
listeningSocket = socket
(
AF_INET,
SOCK_STREAM,
IPPROTO_TCP
);
if (listeningSocket == INVALID_SOCKET)
{
nret = WSAGetLastError();
reportError(nret, "socket()");
WSACleanup();
return NETWORK_ERROR;
}
serverInfo.sin_family = AF_INET;
serverInfo.sin_addr.s_addr = inet_addr(sss);
serverInfo.sin_port = htons(23571);
nret = bind(listeningSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr));
if (nret == SOCKET_ERROR)
{
nret = WSAGetLastError();
reportError(nret, "bind()");
WSACleanup();
return NETWORK_ERROR;
}
nret = listen(listeningSocket, 10);
if (nret == SOCKET_ERROR)
{
nret = WSAGetLastError();
reportError(nret, "listen()");
WSACleanup();
return NETWORK_ERROR;
}
theClient = accept
(
listeningSocket,
NULL,
NULL
);
if (theClient == INVALID_SOCKET)
{
nret = WSAGetLastError();
reportError(nret, "accept()");
WSACleanup();
return NETWORK_ERROR;
}
byteRece = recv(theClient, st, 100, 0);
if (byteRece == SOCKET_ERROR)
{
nret = WSAGetLastError();
reportError(nret, "send()");
WSACleanup();
return NETWORK_ERROR;
}
MessageBoxA(NULL, st, "Server Status", MB_OK | MB_ICONEXCLAMATION);
closesocket(theClient);
closesocket(listeningSocket);
WSACleanup();
return NETWORK_OK;
}
in ip.txt, if i put the ip --- 127.0.0.1 for same pc, it works or if i set the instruction ---
serverInfo.sin_addr.s_addr = INADDR_ANY;
if i put an ip address of other pc in the network, then bind() shows an error -- 10049. the ip is like 192.168.250.201.
|
|
|
|
|
serverInfo.sin_addr.s_addr = inet_addr("127.0.0.1");
...
nret = bind(listeningSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr));
It is common sennse always succeeds above.
But,
serverInfo.sin_addr.s_addr = inet_addr("192.168.250.201");
...
nret = bind(listeningSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr));
will succeeds only when this server program is executed on the pc which has IP address '192.168.250.201' exactly.
Note that bind() address is not client address but server address. So you cannot choose client by bind() and you should check accept()'ed client address by means.
Another situation, you have some local IP address and global IP address 10.0.0.1 by PPPOE, you may not wait for connection on 10.0.0.1 usually, because 10.0.0.1 address is owned by a router which connecting another network. Then you should wait on your local IP address and make change the router settings, for example DMZ or static routing, which 10.0.0.1 in-bound packets can route to your local IP address. In this case, in fact, it is not a programming issue but the network setting issue.
|
|
|
|
|
thanks.
can u tell me how to set the accept() function for getting the ip address of client ?
i tried but no result.
|
|
|
|
|
sockaddr_in clientAddress;
int clientAddressLen = sizeof(sockaddr_in);
SOCKET clientSocket= accept(linteningSocket, (sockaddr*)&clientAddress, &clientAddressLen);
if (INVALID_SOCKET != clientSocket) {
printf("client from %s\n", inet_ntoa(clientAddress.sin_addr);
....
}
What do your program codes return above accept ? No result yet?
|
|
|
|
|
I created a Windows exploler kind of UI. In the right shell pan of the UI i tried to add A tabbed dialog control. Till this point i am fine. In one of that tab I am trying to open a different application. can any one help with any idea how to achive this....
thanks in advance....
birajendu
CyberG India
Delhi
India
|
|
|
|
|
what do you mean by open an application? Are you using some kind of automation or you just want to run the exe
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
birajendu wrote: can any one help with any idea how to achive this....
Which part, adding a tabbed dialog control, or opening a different application?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
birajendu wrote: n one of that tab I am trying to open a different application.
This doesn't really make sense. A different application is a different process space.
You can start an application using CreateProcess , but that process in case of a UI application will run in its own window.
Your question needs to be more specific.
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
Yes, I got you. Let me explain more clearly. I have a application name A, it should have a tabbed UI. In on of its tab I want to lunch another application suppose application B.
To achive this kind of UI what approach I need to take?
Thanks In advance.....
birajendu
SonicWALL
Bangalore.
India
|
|
|
|
|
I guess, it may be related to OLE just like one can embed excel functionality within Word Document. I haven't tried it, but this may be one of the solution to your problem.
|
|
|
|
|
Thanks for all of your replies...
My purpose solved.
birajendu
CyberG India
Delhi
India
|
|
|
|
|
I am using Microsoft Visual Studio 6.00.
I derive a class from CScrollView. I have a scrollbar at view. After moving scrollbar I am take care of SB_LINEDOWN, SB_LINEUP, SB_PAGEDOWN, SB_PAGEUP messages. But when I rotate my mouse knob then scrollbar also gets moved.
My problem is I don't want to move scrollbar though I am rotating mouse knob.
Which message is passed when we rotate mouse knob?
Thanks in advance
Nikesh
|
|
|
|
|
Nikesh Jagtap wrote: But when I rotate my mouse knob then scrollbar also gets moved.
you mean mouse wheel? You can prevent it by overriding the WM_MOUSEWHEEL message..
|
|
|
|
|
I'm changing from very old developper studio 6 to alo old VS 2005.
In a workspace, I have several projects, which depend on each other.
With DS 6 a batch build was no problem.
VS 2005 seems to make different projects at the same time, so I get every time other errors, because libs from one project doesn't exist, but they are needed by other projects.
Does anybody know about a solution for that problem?
|
|
|
|
|
did you see here[^]
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|