最近写了一个HTTP代理服务器, 有些心得, 与大家分享

 

    HTTP代理服务器的原来其实很简单,就是把客户端请求的数据发往远程服务器,再将从远程服务器的接收到的数据发往客户端。但是在编写的时候需要注意几个问题。

      1.  从客户端接收数据,可以用同步的函数recv,但是发往远程服务器的时候,必须采用异步发送的方法,即用

   WSASend(
    SOCKET s,
    LPWSABUF lpBuffers,
    DWORD dwBufferCount,
    LPDWORD lpNumberOfBytesSent,
    DWORD dwFlags,
    LPWSAOVERLAPPED lpOverlapped,
    LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
    );

    利用WSAWaitForMultipleEvents函数等待WSAOVERLAPPED结构中的事件对象。

    如果用send函数发送的话,会已发现发送的数据量为0。

 

    2.  代理服务器用accept函数会得到一个SOCKET,这个SOCKET用完后一定得用closesocket函数关闭掉,否则后续的SOKCET接收不进来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值