/ comp / gb.net / socket
Socket (gb.net)
This class implements a socket client to allow your programs to connect with socket servers. TCP and Local (Unix sockets) connections are implemented.

Symbols
This class inherits Stream in gb.

This class is creatable.

Properties |  | Methods |  | Events |
ByteOrder EndOfFile EndOfLine Handle Host Id LocalHost LocalPort /comp/gb.net/socket/path Port RemoteHost RemotePort Status |  | Close Connect Peek |  | Closed Error Found Read Ready |

This class performs its work asynchronously, so the program will not be stopped while connecting, sending or receiving data.

This class is a derived from the class Stream, so you can use standard Stream & Input/Output functions to send and receive data, and to close the socket.

Sockets can be used if the library "gb.net" is included in the project. To include this library use the menu [Project] [Properties] [Components] tick the component "gb.net".

### Examples

    ' Gambas class file

    PUBLIC MySock AS Socket

    PUBLIC SUB Button1_Click()

      DIM sBuf AS String

      MySock = NEW Socket
      MySock.Connect("localhost", 7000)

      DO WHILE (MySock.Status <> 7) AND (MySock.Status > 0)
        WAIT 0.1
      LOOP

      IF MySock.Status <> 7 THEN
        PRINT "Error"
        QUIT
      END IF

      sBuf = "Hello over there.\n"
      WRITE #MySock, sBuf, Len(sBuf)

      DO WHILE Lof(MySock) = 0
        WAIT 0.1
      LOOP
      READ #MySock, sBuf, Lof(MySock)
      PRINT sBuf

      CLOSE #MySock

    END

#### Remarks to this Example

- Even if here the polling is shown, you should rather use callbacks to react on different states.
- See Network Programming, the tutorial about the usage of networking. There are comments to each line of this example.
- There is another example in the distribution under Networking ClientSocket.