GETDSTPORT/de
Aus MCS Wiki AVR
< GETDSTPORT(Weitergeleitet von GETDSTPORT)
Inhaltsverzeichnis |
= (**COPIED FROM ENGLISH PAGE**) === Action
Returns the port number of the peer.
Syntax
Result = GETDSTPort( socket)
Remarks
Result |
A WORD variable that is assigned with the port number of the peer or destination port number. |
Socket |
The socket number in the range from 0-3 |
When you are in server mode, it might be desirable to detect the port number of the connecting client.
You can use this for logging, security, etc.
See also
CONFIG TCPIP, GETSOCKET , SOCKETCONNECT, SOCKETSTAT , TCPWRITE, TCPWRITESTR, CLOSESOCKET ,SOCKETLISTEN , GETDSTIP
Example
'----------------------------------------------------------------------------------------- 'name : servertest_TWI.bas 'copyright : (c) 1995-2012, MCS Electronics 'purpose : start the easytcp after the chip is programmed ' and create 2 connections 'micro : Mega88 'suited for demo : no 'commercial addon needed : yes '----------------------------------------------------------------------------------------- $regfile = "m88def.dat" ' specify the used micro $crystal = 8000000 ' used crystal frequency $baud = 19200 ' use baud rate $hwstack = 128 ' default use 32 for the hardware stack $swstack = 128 ' default use 10 for the SW stack $framesize = 128 ' default use 40 for the frame space ' xram access Print "Init , set IP to 192.168.1.70" ' display a message Enable Interrupts ' before we use config tcpip , we need to enable the interrupts Config Tcpip = Int1 , Mac = 12.128.12.34.56.78 , Ip = 192.168.1.70 , Submask = 255.255.255.0 , Gateway = 192.168.1.1 , Localport = 1000 , Tx = $55 , Rx = $55 , Chip = W5100 , Spi = 1 Dim Bclient As Byte ' socket number Dim Idx As Byte Dim Result As Word , Result2 As Word ' result Dim S As String * 80 Dim Flags As Byte Dim Peer As Long Dim L As Long Do Waitms 1000 For Idx = 0 To 3 Result = Socketstat(idx , 0) ' get status Select Case Result Case Sock_established If Flags.idx = 0 Then ' if we did not send a welcome message yet Flags.idx = 1 Result = Tcpwrite(idx , "Hello from W3100A{013}{010}") ' send welcome End If Result = Socketstat(idx , Sel_recv) ' get number of bytes waiting Print "Received : " ; Result If Result > 0 Then Do Print "Result : " ; Result Result = Tcpread(idx , S) Print "Data from client: " ; Idx ; " " ; Result ; " " ; S Peer = Getdstip(idx) Print "Peer IP " ; Ip2str(peer) Print "Peer port : " ; Getdstport(idx) 'you could analyse the string here and send an appropiate command 'only exit is recognized If Lcase(s) = "exit" Then Closesocket Idx Elseif Lcase(s) = "time" Then Result2 = Tcpwrite(idx , "12:00:00{013}{010}") ' you should send date$ or time$ End If Loop Until Result = 0 End If Case Sock_close_wait Print "close_wait" Closesocket Idx Case Sock_closed Print "closed" Bclient = Getsocket(idx , Sock_stream , 5000 , 64) ' get socket for server mode, specify port 5000 Print "Socket " ; Idx ; " " ; Bclient Socketlisten Idx Print "Result " ; Result Flags.idx = 0 ' reset the hello message flag Case Sock_listen 'this is normal Case Else Print "Socket status : " ; Result End Select Next Loop End
Languages | English • Deutsch |
---|