lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] Raw lwIP server write issue


From: Valery Ushakov
Subject: Re: [lwip-users] Raw lwIP server write issue
Date: Fri, 6 Nov 2015 23:17:13 +0000 (UTC)
User-agent: tin/2.2.1-20140504 ("Tober an Righ") (UNIX) (NetBSD/6.1.5 (macppc))

Amit Ashara <address@hidden> wrote:

> Do you mean that instead of using pcb I should have another tcp_pcb e,g,
> newpcb that is assigned from the pcb in the call back.
> 
> struct tcp_pcb *newpcb;
> 
> static err_t echo_accept(void *arg, struct tcp_pcb *pcb, err_t err)
> 
> {
>       LWIP_UNUSED_ARG(arg);
>       LWIP_UNUSED_ARG(err);
> 
>       newpcb = pcb;

Exactly.


> On Thu, Nov 5, 2015 at 11:28 AM, Valery Ushakov <address@hidden> wrote:
> 
>> Amit Ashara <address@hidden> wrote:
>>
>> > When a connection is established between the server and the client,
>> > I can use the tcp_write on the client side to send data in my
>> > application code.  However the same on the server side is not
>> > possible.  The pcb that has been used for the server only contains
>> > the server's address and server's port but not the client's address
>> > and client's port.  In the receive call back on the server side, I
>> > can send the data to the client but not outside of the call back.
>>
>> You are using wrong pcb.  On the server you start with a listening
>> pcb.  When your accept callback is called, it's passed a *new* pcb,
>> that represents the established connection.  You should use that pcb
>> for tcp_write.  Writing from receive callback works because in the
>> receive callback the pcb argument is that connection pcb, not the
>> original listening pcb.
>>
>> -uwe

-uwe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]