哪位大侠帮帮忙。我写的一个向httpserver发送请求的程序,为啥读到的返回字节(rn)为2920?是字符数组的长度限制吗??
源程序如下:
#include
目前我们有一个小灵通发送程序。 调用的方法就是传递电话号码和短信内容给socket服务 但是现在需要判断 一下,在客户端建立 连接并发送后,是否发送成功? 据说是可以读取前几个字节来取得值:类似于ST_DENY,ST_OK,ST_ERR类的值, 来得到发送成功与否。 这样的话怎样取得这些值。。。 另外,我们的发送方法是这样的: public void SMSsend(String phone, String sms) { BufferedReader in; PrintWriter out; Stri...
想请教一个问题,大家应该发现socket()调用时返回的值是从3开始顺序给出的,而我单纯调用socket(),而没有调用select()之类的,那前面3个(0,1,2,)分别用做什么?难道还是用做标准输入,输出,异常?为什么,我都没调用涉及到这个的函数,只单纯用socket()而已。 有什么办法可以跟踪调试吗?可以给出命令来启发一下吗?
socketfd=accept(hServer, (struct sockaddr *)&sin, &len); printf socketfd 的时候, socketfd 是 0, 这是怎么回事???
int socket(int domain,int type,int protocol); 这个函数返回的socked的fd的值能不能等于0,这个值有什么取值范围,请教大家一下。 [ 本帖最后由 cnzhaopeng 于 2009-3-16 21:30 编辑 ]
iAcceptFD = accept(iListen,(struct sockaddr *)NULL,NULL); FD_ZERO(&writefds); FD_SET(fd,&writefds); found = select(fd+1,NULL,&writefds,NULL,&tt); 返回值为iAcceptFD 为0 ,而此时当执行select调用时候出错,errno 错误类型为EBADF(An invalid file descriptor was given in one of the sets)。 什么原因造成返回值是0这个情况??
as400向aix发送数据,用send,而aix端用recv来接收,但是当发送数据到一定量的时候,as400端出现“Interrupted function call”和“Descriptor not valid”错误,errno应该是EINTR 。但是这种情况对于同样的数据不是每次都出现,时有时无。as400端的程序使用C写的,部分代码如下: rc = send(sdn, sndbuf+sum, BUF_LEN, 0) { if(rc <= 0) { ErrMsg(ERRMSG204); /*这个函数是向sysopr发送msg*/ clos...
这是一段客户端测试代码 send_size+= send(sock, Out->;phead->;msgpkt.OutBuf, Out->;phead->;msgpkt.isize, 0); isize=Out->;phead->;msgpkt.isize; printf("send sock=%d;size=%d;sendsize=%d\n",sock,isize,send_size); send_size=0; send_size+= send(sock, Out->;phead->;msgpkt.OutBuf, Out->;phead->;msgpkt.isize, 0); ...