TCPWRITESTR/de
Inhaltsverzeichnis |
= (**COPIED FROM ENGLISH PAGE**) === Action
Sends a string to an open socket connection.
Syntax
Result = TCPWRITESTR( socket , var , param)
Remarks
Result |
A word variable that will be assigned with the number of bytes actually written to the socket.
When the free transmission buffer is large enough to accept all the data, the result will be the same as BYTES. When there is not enough space, the number of written bytes will be returned.
When there is no space, 0 will be returned. |
Socket |
The socket number you want to send data to (0-3). 0-7 for W5200/W5300. |
Var |
The name of a string variable. |
Param |
A parameter that might be 0 to send only the string or 255, to send the string with an additional CR + LF
This option was added because many protocols expect CR + LF at the end of the string. |
The TCPwriteStr function is a special variant of the TCPwrite function.
It will use TCPWrite to send the data.
See also
CONFIG TCPIP, GETSOCKET , SOCKETCONNECT, SOCKETSTAT , TCPWRITE, TCPREAD, SOCKETCLOSE , SOCKETLISTEN,SOCKETDISCONNECT
Example
'------------------------------------------------------------------------------- ' SMTP.BAS ' (c) 2002 MCS Electronics ' sample that show how to send an email with SMTP protocol '------------------------------------------------------------------------------- $regfile = "m161def.dat" ' used processor $crystal = 4000000 ' used crystal $baud = 19200 ' baud rate Const Debug = -1 ' for sending feeback to the terminal #if Debug Print "Start of SMTP demo" #endif Enable Interrupts ' enable interrupts 'specify MAC, IP, submask and gateway 'local port value will be used when you do not specify a port value while creating a connection 'TX and RX are setup to use 4 connections each with a 2KB buffer Config Tcpip = Int0 , Mac = 00.44.12.34.56.78 , Ip = 192.168.0.8 , Submask = 255.255.255.0 , Gateway = 192.168.0.1 , Localport = 1000 , Tx = $55 , Rx = $55 'dim the used variables Dim S As String * 50 , I As Byte , J As Byte , Tempw As Word #if Debug Print "setup of W3100A complete" #endif 'First we need a socket I = Getsocket(0 , Sock_stream , 5000 , 0) ' ^ socket numer ^ port #if Debug Print "Socket : " ; I 'the socket must return the asked socket number. It returns 255 if there was an error #endif If I = 0 Then ' all ok 'connect to smtp server J = Socketconnect(i , 194.09.0. , 25) ' smtp server and SMTP port 25 ' ^socket ' ^ ip address of the smtp server ' ^ port 25 for smtp ' DO NOT FORGET to ENTER a valid IP number of your ISP smtp server #if Debug Print "Connection : " ; J Print S_status(1) #endif If J = 0 Then ' all ok #if Debug Print "Connected" #endif Do Tempw = Socketstat(i , 0) ' get status Select Case Tempw Case Sock_established ' connection established Tempw = Tcpread(i , S) ' read line #if Debug Print S ' show info from smtp server #endif If Left(s , 3) = "220" Then ' ok Tempw = Tcpwrite(i , "HELO username{013}{010}" ) ' send username ' ^^^ fill in username there #if Debug Print Tempw ; " bytes written" ' number of bytes actual send #endif Tempw = Tcpread(i , S) ' get response #if Debug Print S ' show response #endif If Left(s , 3) = "250" Then ' ok Tempw = Tcpwrite(i , "MAIL FROM:<tcpip@test.com>{013}{010}") ' send from address Tempw = Tcpread(i , S) ' get response #if Debug Print S #endif If Left(s , 3) = "250" Then ' ok Tempw = Tcpwrite(i , "RCPT TO:<tcpip@test.com>{013}{010}") ' send TO address Tempw = Tcpread(i , S) ' get response #if Debug Print S #endif If Left(s , 3) = "250" Then ' ok Tempw = Tcpwrite(i , "DATA{013}{010}") ' speicfy that we are going to send data Tempw = Tcpread(i , S) ' get response #if Debug Print S #endif If Left(s , 3) = "354" Then ' ok Tempw = Tcpwrite(i , "From: tcpip@test.com{013}{010}") Tempw = Tcpwrite(i , "To: tcpip@test.com{013}{010}") Tempw = Tcpwrite(i , "Subject: BASCOM SMTP test{013}{010}") Tempw = Tcpwrite(i , "X-Mailer: BASCOM SMTP{013}{010}") Tempw = Tcpwrite(i , "{013}{010}") Tempw = Tcpwrite(i , "This is a test email from BASCOM SMTP{013}{010}") Tempw = Tcpwrite(i , "Add more lines as needed{013}{010}") Tempw = Tcpwrite(i , ".{013}{010}") ' end with a single dot Tempw = Tcpread(i , S) ' get response #if Debug Print S #endif If Left(s , 3) = "250" Then ' ok Tempw = Tcpwrite(i , "QUIT{013}{010}") ' quit connection Tempw = Tcpread(i , S) #if Debug Print S #endif End If End If End If End If End If End If Case Sock_close_wait Print "CLOSE_WAIT" Closesocket I ' close the connection Case Sock_closed Print "Socket CLOSED" ' socket is closed End End Select Loop End If End If End 'end program
Languages | English • Deutsch |
---|