易截截图软件、单文件、免安装、纯绿色、仅160KB

linux socket error

大致情况是:
我有个服务跑在LINUX下,有一个客户端不断地向它连接(速度大约是1s一次)。客户端连接成功之后,会立即发送数据给服务,服务将其断掉。但是一段时间后,客户端可以连接成功,但服务器端接收数据时总是错误,错误码是14,即EFAULT,经查相关资料,改错误是:参数中有一指针指向无法存取的内存空间。可是我的接收缓存指针没问题啊(因为每个请求过来,服务器端就建立一个新的对象,并将相关参数初始化,之后就是接收数据,所以断定应该没问题)。
这是怎么回事?请大侠指点。
贴代码比较好,这样很难弄清楚

PUI_Post_Parser::PUI_Post_Parser(ACE_Reactor *rt, const ACE_SOCK_Stream& sock, const ACE_INET_Addr &addr)
: PUI_Connection(rt, sock, addr)
, recv_buf_p_(recv_buf_)
, recv_ttl_len_(size_t(recv_buf_))
, recv_len_(0)
, close_flag_(true)
{
ACE_OS::memset(recv_buf_, 0, sizeof(recv_buf_));

CR_LOGDBG("PUI_Post_Parser [0x%08X] from [%s:%d] construct", this,
remote_addr().get_host_addr(), remote_addr().get_port_number());
}

PUI_Post_Parser::~PUI_Post_Parser(void)
{
if (close_flag_)
{
peer_.close();
CR_LOGINFO("the connection from [%s:%d] disconnected",
remote_addr().get_host_addr(), remote_addr().get_port_number());
}

if (reactor() != NULL)
reactor(NULL);

CR_LOGDBG("PUI_Post_Parser [0x%08X] from [%s:%d] destruct", this,
remote_addr().


相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

关于linux下socket编程的问题! - C/C++ / C语言

由于我才刚刚接触socket编程,自己写了一个简单程序,但就是在运行的时候出现段错误,无法解决,现在我把源代码贴出来,请各位大虾指正一下!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include& ......

linux 下C编程工具问题 请教 - C/C++ / C语言

linux 下C编程 集成开发环境 用什么比较好 
我初步选定 codeblock 
呵呵 还有 在linux 写了一个打印中文的代码,而今天在windows 下查看那个代码 , 是乱码 而后想到先用 EditPlus先进行编辑 然后复制 ......

linux下面如何让线程等待多个事件?

rt
使用I/O多路转接,select/poll/epoll。

首先,你所说的事件是什么?是signal还是condition
如果是signal,因为线程有别于进程,所以可以这样做。在线程内设置信号屏蔽位,将期望处理的信号位放
开,其余的bl ......

linux下连接oracle数据库慢 - Oracle / 高级技术

本来没问题的,但是现在不管用什么工具连数据库都很慢,因为后来服务器中多加了块网卡,而数据库监听设置的还是服务器名,我想会不会是这个问题,请教高手,并询问解决方法!谢谢
自己先顶下

把后加的网卡拿掉在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号