Re: Widnows sending RST in tpc/ip connection



I found a newsgroup thread that might explained this a bit..
the person wrote
"Incoming TCP packets are always delivered to the
normal TCP stack. If it didn't send out the original SYN packet, it
won't recognize the reply as belonging to a valid connection, and will
reject it with a RST"
This seems to be the issue I have encountered, but I don't know how to solve
it.

/Niklas

"Niklas Olsson" <niklaso@xxxxxxxxxxx> wrote in message
news:%23mLLWND8FHA.2608@xxxxxxxxxxxxxxxxxxxxxxx
>
> "Dave Lowther" <davel@xxxxxxxxx> wrote in message
> news:OiWa$GD8FHA.1148@xxxxxxxxxxxxxxxxxxxxxxx
>> "Niklas Olsson" wrote in message
>>>
>>> Thank you for the suggestions,
>>> however I can't get it to work, but maybe I'm doing it wrong.
>>> I used
>>> Socket = socket (AF_INET, SOCK_STREAM, 0):
>>> and then
>>> local_sin.sin_family = AF_INET;
>>> local_sin.sin_port = htons (nPort);
>>> local_sin.sin_addr.s_addr = htonl (INADDR_ANY);
>>> bind (Socket, (struct sockaddr *) &local_sin,
>>> sizeof (local_sin)
>>>
>>> I thought that this might be enough, but is it?
>>> I tried also to call listen() after bind but I always end up with
>>> windows (or some program other than mine) sending the reset message.
>>> Since everything works find if I let winsock connect, there must be
>>> something I don't do correctly.
>>> (my SYN message seem to be working fine (I get back the SYN,ACK) and in
>>> comparassion to the SYN winsock send I can't find any differencies
>>> except checksum)
>>> I don't have any firewall running that would block.
>>
>> Is your code a TCP/IP client, or server ?
>>
>> Probably not necessary but I usually memset() the struct sockaddr with
>> all 0's before filling out the required fields.
>>
>> If it's a client:
>> o You shouldn't be setting the port number for bind, in fact why call
>> bind at all.
>> o You should be calling connect()
>>
>> If it's a server:
>> o You should call socket(), bind(), listen(), accept()
>> o You should be setting the port number with bind
>> o You should use the socket returned by accept() to talk to the client.
>>
>> HTH
>>
>> Dave.
>>
>
> Thanks for the suggestions Dave,
> The thing is, I can't use Connect() (it's just to slow (if there is no
> peer in the other end))
> So I communicate directly with the adapter and send my message.
> (and my program is a client)
> I got fooled earlier that it worked because the windows firewall was on,
> which makes the ports stealth if I'm not mistaken but now that I turned it
> off, windows will answer with a reset message that the port I send on is
> not in use.
> But perhaps it's not winsock I should look at, I just want to tell windows
> that the port 9704 (or any other I specify) is un use and that it should
> not send any reset message.
>
> thanks
> /Niklas
>


.



Relevant Pages

  • Re: Widnows sending RST in tpc/ip connection
    ... >> I tried also to call listenafter bind but I always end up with windows ... > Is your code a TCP/IP client, ... > o You shouldn't be setting the port number for bind, ... I got fooled earlier that it worked because the windows firewall was on, ...
    (microsoft.public.win32.programmer.networks)
  • Re: connection failure: timeout
    ... > You almost never need to bind a client TCP socket to a specific port. ... But yes, in general, calling bind() before calling connectis wrong. ...
    (microsoft.public.win32.programmer.networks)
  • Re: UDP Client Problem
    ... you don't need to bind client client both in UDP and TCP ... port - Remote port number in host byte order. ...
    (microsoft.public.win32.programmer.networks)
  • Re: connection failure: timeout
    ... I tried to bind "0.0.0.0" it works. ... So should not use loopback interface ... >> You almost never need to bind a client TCP socket to a specific port. ...
    (microsoft.public.win32.programmer.networks)
  • Re: How to listen to more a specific IP and specific ports
    ... bind my socket to specific unlimited and selective IP addresses. ... Moreover, in Unix/Linux Berekly network programming, you can determin the ... port numbers. ...
    (microsoft.public.win32.programmer.networks)