Xojo Conferences
MBSSep2018MunichDE
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

RAWSocketMBS class

Type Topic Plugin Version macOS Windows Linux Console & Web iOS
class Network MBS Network Plugin 17.4 Yes Yes Yes Yes No
Function: A class for low level and raw sockets.
Example:
dim sock as RAWSocketMBS

// create UDP socket
sock = new RAWSocketMBS(RAWSocketMBS.AddressFamilyINet, RAWSocketMBS.SocketTypeDatagram, RAWSocketMBS.ProtocolUDP)
Notes:
Similar to Xojo's built in Socket class, but more low level and with more options.
Raw sockets for things like PING may need root permissions.

Feedback, Comments & Corrections

  • 3 events
  • 14 properties
  • 15 methods
    • method Bind(DestAddr as Ptr, DestAddrByteSize as Integer) as Boolean
    • method Bind(Port as Integer, IP as string = "")
    • method Connect(Address as String, Port as Integer, byref ErrorMessage as String) as Boolean
    • method Connect(DestAddr as Ptr, DestAddrByteSize as Integer) as Boolean
    • method Constructor(AddressFamily as Integer, SocketType as Integer, Protocol as Integer)
    • method Destructor
    • method Poll
    • method Read(ByteSize as Integer, peek as boolean = false) as MemoryBlock
    • method ReadAll(peek as boolean = false) as MemoryBlock
    • method ReadDatagram(peek as boolean = false) as DatagramMBS
    • method Send(Data as Ptr, DataByteSize as Integer, Flags as Integer = 0) as Integer
    • method SendMessage(Data as DatagramMBS) as Integer
    • method SendMessage(Data as MemoryBlock, IP as String, Port as Integer) as Integer
    • method SendMessage(Data as string, IP as String, Port as Integer) as Integer
    • method SendTo(Data as Ptr, DataByteSize as Integer, Flags as Integer, DestAddr as Ptr, DestAddrByteSize as Integer) as Integer
  • 8 shared methods
    • shared method AddressFamilyINet6 as Integer
    • shared method CalcChecksum(data as ptr, ByteCount as Integer) as UInt16
    • shared method htonl(value as UInt32) as UInt32
    • shared method htons(value as UInt16) as UInt16
    • shared method inet_addr(IPv4 as String) as UInt32
    • shared method inet_ntoa(IPv4 as UInt32) as String
    • shared method ntohl(value as UInt32) as UInt32
    • shared method ntohs(value as UInt16) as UInt16
  • 10 constants

Address Families

Constant Value Description
AddressFamilyINet 2 IPv4

Protocols

Constant Value Description
ProtocolICMP 1 ICMP
ProtocolIP 0 IPv4
ProtocolIPv6 41 IPv6
ProtocolRaw 255 Raw protocol
ProtocolTCP 6 TCP
ProtocolUDP 17 UDP

Socket Types

Constant Value Description
SocketTypeDatagram 2 Datagram, e.g. UDP.
SocketTypeRaw 3 Raw socket, requires root permissions.
SocketTypeStream 1 Stream socket, e.g. TCP/IP.

This class has no sub classes.

Some examples which use this class:


The items on this page are in the following plugins: MBS Network Plugin.


RaspberryPiCameraMBS   -   RC4MBS





Links
MBS Xojo Chart Plugins