注册 登录
编程论坛 VFP论坛

UDP 数据接收只接收1024,如何不开辟内存空间完整接收?

ljb8864 发布于 2023-08-27 09:23, 385 次点击
UDP 数据接收只接收1024,如何不开辟内存空间完整接收?
6 回复
#2
ljb88642023-08-27 10:32
the datagram is too large to fit into the buffer and is truncated.
#3
吹水佬2023-08-27 10:59
不是已经接收到了吗,接收缓冲可以定义足够大。
#4
ljb88642023-08-27 12:20
回复 3楼 吹水佬
LPARAMETERS bytestotal
ComArray(this.object,11)

Dimension lcBuffer[1] as Byte

this.object.GetData(@lcBuffer,17,bytesTotal)  这句出错

*!*    ?lcBuffer

thisform.edit1.Value=Strconv(lcBuffer,15)
#5
吹水佬2023-08-28 06:58
this.object.GetData函数原型或参数介绍一下
如果不是用vfp定义的函数,这样传入数组参数未必有效。
#6
ljb88642023-08-28 09:33
回复 5楼 吹水佬
是MSWINSOCK的函数
只有本站会员才能查看附件,请 登录


是不是要设置缓存大小?但设置不了,是不是下面API写不对

DECLARE LONG  setsockopt IN "Ws2_32" long s ,long level,long optname ,long optval ,long optlen  &&"wsock32.dll"
DECLARE LONG  getsockopt IN "Ws2_32" long s ,long level,long optname ,long @optval ,long optlen&&"wsock32.dll"
#define  SOL_SOCKET  65535
#define SO_REUSEADDR 0x0004
#define SO_REUSEPORT 15

getsockopt(Thisform.tcpClient.OBJECT.SocketHandle, SOL_SOCKET, SO_REUSEADDR, 1, 1)
setsockopt(Thisform.tcpClient.OBJECT.SocketHandle, SOL_SOCKET, SO_REUSEADDR, 1, 1)
C语言使用如下
*!*        int on = 1;
*!*        setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
为了解决Address in use C:\Windows\SysWOW64\mswinsck.ocx

#define SOL_SOCKET      1

#define SO_DEBUG        1
#define SO_REUSEADDR    2
#define SO_TYPE         3
#define SO_ERROR        4
#define SO_DONTROUTE    5
#define SO_BROADCAST    6
#define SO_SNDBUF       7
#define SO_RCVBUF       8
#define SO_SNDBUFFORCE  32
#define SO_RCVBUFFORCE  33
#define SO_KEEPALIVE    9
#define SO_OOBINLINE    10
#define SO_NO_CHECK     11
#define SO_PRIORITY     12
#define SO_LINGER       13
#define SO_BSDCOMPAT    14

buflen = 65536*10;
设置读缓存大小
setsockopt(m_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,4)
设置写缓存大小
setsockopt(m_sendUdpSock,SOL_SOCKET,SO_SNDBUF,&buflen,4)
getsockopt(g_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,&getnumlen)



[此贴子已经被作者于2023-8-28 10:03编辑过]

#7
吹水佬2023-08-28 21:43
没看明白到底是说哪句有问题
代码不完整,看不明。
1