ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.06.2025

Просмотров: 8357

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

© MCS Electronics, 1995-2007

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).

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 after 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, CLOSESOCKET , SOCKETLISTEN

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

$lib "tcpip.lbx"

' specify the name

of the tcp ip lib

'W3100A constants

' Tcp

Const Sock_stream = $01

Const Sock_dgram = $02

' Udp

Const Sock_ipl_raw = $03

' Ip Layer Raw

Sock

' Mac Layer Raw

Const Sock_macl_raw = $04

Sock

' Confirm Socket

Const Sel_control = 0

Status

' Confirm Tx Free

Const Sel_send = 1

Buffer Size

' Confirm Rx Data

Const Sel_recv = 2

Size

page -692-


© MCS Electronics, 1995-2007

'socket status

' Status Of

Const Sock_closed = $00

Connection Closed

' Status Of Arp

Const Sock_arp = $01

Const Sock_listen = $02

' Status Of

Waiting For Tcp Connection Setup

' Status Of

Const Sock_synsent = $03

Setting Up Tcp Connection

' Status Of

Const Sock_synsent_ack = $04

Setting Up Tcp Connection

' Status Of

Const Sock_synrecv = $05

Setting Up Tcp Connection

' Status Of Tcp

Const Sock_established = $06

Connection Established

' Status Of

Const Sock_close_wait = $07

Closing Tcp Connection

' Status Of

Const Sock_last_ack = $08

Closing Tcp Connection

' Status Of

Const Sock_fin_wait1 = $09

Closing Tcp Connection

' Status Of

Const Sock_fin_wait2 = $0a

Closing Tcp Connection

' Status Of

Const Sock_closing = $0b

Closing Tcp Connection

' Status Of

Const Sock_time_wait = $0c

Closing Tcp Connection

' Status Of

Const Sock_reset = $0d

Closing Tcp Connection

' Status Of Socket

Const Sock_init = $0e

Initialization

' Status Of Udp

Const Sock_udp = $0f

Const Sock_raw = $10

' Status of IP RAW

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

page -693-


© MCS Electronics, 1995-2007

If I = 0 Then

' all ok

'connect to smtp server

' smtp server and

J = Socketconnect(i , 194.09.0. , 25)

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

' all ok

If J = 0 Then

#if Debug

Print "Connected"

#endif

Do

' get status

Tempw = Socketstat(i , 0)

Select Case Tempw

' connection

Case Sock_established

established

Tempw = Tcpread(i , S)

' read line

#if Debug

' show info from

smtp server

Print S

#endif

' ok

If Left(s , 3) = "220" Then

'

send username

Tempw = Tcpwrite(i , "HELO username{013}{010}" )

'

^^^ fill in username there

#if Debug

bytes written"

' number of bytes

actual send

Print Tempw ; "

#endif

' get response

Tempw = Tcpread(i , S)

#if Debug

' show response

Print S

#endif

' ok

If Left(s , 3) = "250" Then

Tempw = Tcpwrite(i , "MAIL

FROM:<tcpip@test.com>{013}{010}")

' send from address

' get response

Tempw = Tcpread(i , S)

#if Debug

Print S

#endif

' ok

If Left(s , 3) = "250" Then

Tempw = Tcpwrite(i , "RCPT

TO:<tcpip@test.com>{013}{010}")

' send TO address

' get response

Tempw = Tcpread(i , S)

#if Debug

Print S

#endif

' ok

If Left(s , 3) = "250" Then

'

Tempw = Tcpwrite(i , "DATA{013}{010}")

speicfy that we are going to send data

' get response

Tempw = Tcpread(i , S)

#if Debug

Print S

#endif

' ok

If Left(s , 3) = "354" Then

Tempw = Tcpwrite(i , "From:

tcpip@test.com{013}{010}")

Tempw = Tcpwrite(i , "To:

tcpip@test.com{013}{010}")

page -694-


© MCS Electronics, 1995-2007

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}")

' end

Tempw = Tcpwrite(i , ".{013}{010}")

with a single dot

Tempw = Tcpread(i , S)

' get response

#if Debug

Print S

#endif

' ok

If Left(s , 3) = "250" Then

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"

' close the

Closesocket I

connection

Case Sock_closed

' socket is closed

Print "Socket CLOSED"

End

End Select

Loop

End If

End If

'end program

End

TANH

Action

Returns the hyperbole of a single

Syntax

var = TANH( source )

Remarks

Var

A numeric variable that is assigned with hyperbole of variable

source.

Source

The single or double variable to get the hyperbole of.

All trig functions work with radians. Use deg2rad and rad2deg to convert between radians

page -695-