求大神指导 kcp = KCP.ikcp_create(0, (void*)0);
KcpUser cq = delegate (byte[] array, int v) {
};
KCP.ikcp_setoutput(kcp, delegate (byte* data, int len, IntPtr kcp, void* v) {
byte[] buff = new byte[len];
Marshal.Copy(new IntPtr(data), buff, 0, len);
socket.Send(buff);
});
KCP.ikcp_wndsize(kcp, 512, 512);
KCP.ikcp_nodelay(kcp, 1, 10, 2, 1);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
socket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8500));
RunThread();
//发送部分代码
while (true)
{
KCP.ikcp_update(kcp, (uint)Environment.TickCount);
Thread.Sleep(1000);
index += 1;
string fuck = "我是大坏蛋呀!!"+index;
var bytes = System.Text.Encoding.UTF8.GetBytes(fuck);
int len = KCP.ikcp_send(kcp, bytes, bytes.Length);
KCP.ikcp_flush(kcp);;
}
9条答案
按热度按时间qlfbtfca1#
还是 ikcp_recv 一直返回-1 悲伤
gywdnpxw2#
已解决,,,客户端没处理ack....
7qhs6swi3#
请问一下客户端ack是怎么处理的
ugmeyewa4#
我现在就是有一个问题就是假如我客户端一直发消息,客户端也进行了ack处理,服务端接收到某一个次数后就不接受了,比如说接收了1000次就停止了
swvgeqrz5#
这是服务端代码
`ikcpcb *kcp = ikcp_create(1, (void *) &addrClient);
kcp->output = udp_output;
ikcp_nodelay(kcp, 1, 1, 2, 1);
ikcp_wndsize(kcp, 128, 128);
/* if (nRet < 0){
int y = WSAGetLastError();
//printf(" WSAGetLastError(); %d\n", y);
break;
}*/
ikcp_input(kcp, buf, nRet);
ikcp_update(kcp, clock());
ikcp_flush(kcp);
`
jm81lzqq6#
这是客户端代码
8yparm6h7#
` ikcpcb *kcp = ikcp_create(1, (void *) &servAddr);
kcp->output = udp_output;
ikcp_nodelay(kcp, 1, 1, 2, 1);
ikcp_wndsize(kcp, 128, 128);
jfewjypa8#
抱歉了,github这个贴代码的工具好像有bug
2w3kk1z59#
麻烦问一下各位大佬这里面有哪些逻辑错误呢,十分期待您的回复!