finished tcp functions
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
void __test_knIPV4Address_fromStr(char* addrStr, u8 a, u8 b, u8 c, u8 d){
|
||||
tryLast(knIPV4Address_fromStr(addrStr), maybeAddr, ;)
|
||||
knIPV4Address addr;
|
||||
addr.u32=(u32)maybeAddr.value.UInt64;
|
||||
addr.UintBigEndian=(u32)maybeAddr.value.UInt64;
|
||||
kprintf("\e[94mknIPV4Address_fromStr(\e[96m%s\e[94m) -> ", addrStr);
|
||||
if(maybeAddr.value.UInt64!=knIPV4Address_fromBytes(a,b,c,d).u32){
|
||||
if(maybeAddr.value.UInt64!=knIPV4Address_fromBytes(a,b,c,d).UintBigEndian){
|
||||
kprintf("\e[91m%u.%u.%u.%u\n",
|
||||
(u8)addr.bytes[0], (u8)addr.bytes[1], (u8)addr.bytes[2], (u8)addr.bytes[3]);
|
||||
throw("knIPV4Address_fromStr returned wrong value");
|
||||
@@ -42,15 +42,32 @@ void test_network(){
|
||||
socket=m_socket.value.VoidPtr;
|
||||
kprintf("\e[92mTCP socket created\n");
|
||||
|
||||
knIPV4Endpoint localEnd = knIPV4Endpoint_create(knIPV4Address_fromBytes(127,0,0,1), 4444);
|
||||
knIPV4Endpoint localEnd = knIPV4Endpoint_create(IPV4_LOOPBACK, 4444);
|
||||
tryLast(knSocketTCP_listen(socket, localEnd), _m81775, ;)
|
||||
kprintf("\e[92msocket is listening\n");
|
||||
|
||||
tryLast(knSocketTCP_accept(socket), m_connection, ;);
|
||||
knSocketTCP* clientConnection = m_connection.value.VoidPtr;
|
||||
kprintf("\e[92mclient connection accepted\n");
|
||||
|
||||
char buf[4096];
|
||||
while(true){
|
||||
tryLast(knSocketTCP_accept(socket), m_connection, ;);
|
||||
knSocketTCP* connection = m_connection.value.VoidPtr;
|
||||
knSocketTCP_receive()
|
||||
tryLast(knSocketTCP_receive(clientConnection, buf, sizeof(buf)), m_recCount, ;);
|
||||
u64 recCount = m_recCount.value.UInt64;
|
||||
fwrite(buf, sizeof(char), recCount, stdout);
|
||||
// end of received data
|
||||
if(recCount != sizeof(buf))
|
||||
break;
|
||||
}
|
||||
|
||||
kprintf("\e[92mmessage received\n");
|
||||
|
||||
const char msg[] = "pong";
|
||||
tryLast(knSocketTCP_send(clientConnection, msg, sizeof(msg)), _mu75q2, ;);
|
||||
kprintf("\e[92mmessage sent\n");
|
||||
|
||||
tryLast(knSocketTCP_shutdown(clientConnection, knShutdownType_Both), _m2351, ;);
|
||||
tryLast(knSocketTCP_close(clientConnection), _m9776, ;);
|
||||
kprintf("\e[92mclient connection closed\n");
|
||||
|
||||
tryLast(knSocketTCP_close(socket), _m676, ;);
|
||||
kprintf("\e[92mTCP socket closed\n");
|
||||
|
||||
Reference in New Issue
Block a user