Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > TCP/IP

Reply
Thread Tools

TCP/IP

 
 
id10t error
Guest
Posts: n/a
 
      05-22-2008
Hello,

I am trying to write soem code that will send data to an Oneil
printer
over our network. I know the printer works and is setup correctly
because I can print to it from there software. In my program i am
getting this error.


System.IO.IOException was unhandled
Message="Unable to read data from the transport connection: An
existing connection was forcibly closed by the remote host."


I will post my code below. Any help would be great.


Imports System.Net.Sockets
Imports System.Text
Public Class Form2


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Dim tcpClient As New System.Net.Sockets.TcpClient()
'tcpClient.Connect(hostname, port)
tcpClient.Connect("10.0.9.106", 515)
Dim networkStream As NetworkStream = tcpClient.GetStream()
If networkStream.CanWrite And networkStream.CanRead Then
' Do a simple write.
Dim sendBytes As [Byte]() =
Encoding.ASCII.GetBytes(" EZ{PRINT,STOP350:@20,35:ZP08A|003|")
networkStream.Write(sendBytes, 0, sendBytes.Length)
' Read the NetworkStream into a byte buffer.
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0,
CInt(tcpClient.ReceiveBufferSize))' ---> this is the line giving me
the error
' Output the data received from the host to the console.
Dim returndata As String =
Encoding.ASCII.GetString(bytes)
Console.WriteLine(("Host returned: " + returndata))
Else
If Not networkStream.CanRead Then
Console.WriteLine("cannot not write data to this
stream")
tcpClient.Close()
Else
If Not networkStream.CanWrite Then
Console.WriteLine("cannot read data from this
stream")
tcpClient.Close()
End If
End If
End If
' pause so user can view the console output
Console.ReadLine()
End Sub


End Class


 
Reply With Quote
 
 
 
 
George Ter-Saakov
Guest
Posts: n/a
 
      05-22-2008
You code and words contradict each other...
You said you want to send something to printer.
But you code says networkStream.Read as if you trying to read something from
printer.


Here is the code i am using


public bool SendBytesToPrinter(byte[] p)
{
try
{
IPEndPoint ipEndPoint;
ipEndPoint = new IPEndPoint(IPAddress.Parse(_sName), 9100);
Socket socket;
using (socket = new
Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp))
{
socket.Connect(ipEndPoint);
socket.Send(p);
socket.Close();
}
return true;
}
catch (Exception e)
{
//TODO: do something with exception
return false;
}
}


George


"id10t error" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hello,
>
> I am trying to write soem code that will send data to an Oneil
> printer
> over our network. I know the printer works and is setup correctly
> because I can print to it from there software. In my program i am
> getting this error.
>
>
> System.IO.IOException was unhandled
> Message="Unable to read data from the transport connection: An
> existing connection was forcibly closed by the remote host."
>
>
> I will post my code below. Any help would be great.
>
>
> Imports System.Net.Sockets
> Imports System.Text
> Public Class Form2
>
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
> As System.EventArgs) Handles Button1.Click
> Dim tcpClient As New System.Net.Sockets.TcpClient()
> 'tcpClient.Connect(hostname, port)
> tcpClient.Connect("10.0.9.106", 515)
> Dim networkStream As NetworkStream = tcpClient.GetStream()
> If networkStream.CanWrite And networkStream.CanRead Then
> ' Do a simple write.
> Dim sendBytes As [Byte]() =
> Encoding.ASCII.GetBytes(" EZ{PRINT,STOP350:@20,35:ZP08A|003|")
> networkStream.Write(sendBytes, 0, sendBytes.Length)
> ' Read the NetworkStream into a byte buffer.
> Dim bytes(tcpClient.ReceiveBufferSize) As Byte
> networkStream.Read(bytes, 0,
> CInt(tcpClient.ReceiveBufferSize))' ---> this is the line giving me
> the error
> ' Output the data received from the host to the console.
> Dim returndata As String =
> Encoding.ASCII.GetString(bytes)
> Console.WriteLine(("Host returned: " + returndata))
> Else
> If Not networkStream.CanRead Then
> Console.WriteLine("cannot not write data to this
> stream")
> tcpClient.Close()
> Else
> If Not networkStream.CanWrite Then
> Console.WriteLine("cannot read data from this
> stream")
> tcpClient.Close()
> End If
> End If
> End If
> ' pause so user can view the console output
> Console.ReadLine()
> End Sub
>
>
> End Class
>
>



 
Reply With Quote
 
 
 
 
id10t error
Guest
Posts: n/a
 
      05-22-2008
On May 22, 2:00*pm, "George Ter-Saakov" <(E-Mail Removed)> wrote:
> You code and words contradict each other...
> You said you want to send something to printer.
> But you code says networkStream.Read as if you trying to read something from
> printer.
>
> Here is the code i am using
>
> public bool SendBytesToPrinter(byte[] p)
> {
> * * try
> * * {
> * * * * IPEndPoint ipEndPoint;
> * * * * ipEndPoint = new IPEndPoint(IPAddress.Parse(_sName), 9100);
> * * * * Socket socket;
> * * * * using (socket = new
> Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp))
> * * * * {
> * * * * * * socket.Connect(ipEndPoint);
> * * * * * * socket.Send(p);
> * * * * * * socket.Close();
> * * * * }
> * * * * return true;
> * * }
> * * catch (Exception e)
> * * {
> * * * * //TODO: do something with exception
> * * * * return false;
> * * }
>
> }
>
> George
>
> "id10t error" <(E-Mail Removed)> wrote in message
>
> news:(E-Mail Removed)...
>
>
>
> > Hello,

>
> > I am trying to write soem code that will send data to an Oneil
> > printer
> > over our network. I know the printer works and is setup correctly
> > because I can print to it from there software. In my program i am
> > getting this error.

>
> > System.IO.IOException was unhandled
> > *Message="Unable to read data from the transport connection: An
> > existing connection was forcibly closed by the remote host."

>
> > I will post my code below. Any help would be great.

>
> > Imports System.Net.Sockets
> > Imports System.Text
> > Public Class Form2

>
> > * *Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
> > As System.EventArgs) Handles Button1.Click
> > * * * *Dim tcpClient As New System.Net.Sockets.TcpClient()
> > * * * *'tcpClient.Connect(hostname, *port)
> > * * * *tcpClient.Connect("10.0.9.106", 515)
> > * * * *Dim networkStream As NetworkStream = tcpClient.GetStream()
> > * * * *If networkStream.CanWrite And networkStream.CanRead Then
> > * * * * * *' Do a simple write.
> > * * * * * *Dim sendBytes As [Byte]() =
> > Encoding.ASCII.GetBytes(" EZ{PRINT,STOP350:@20,35:ZP08A|003|")
> > * * * * * *networkStream.Write(sendBytes, 0, sendBytes.Length)
> > * * * * * *' Read the NetworkStream into a byte buffer.
> > * * * * * *Dim bytes(tcpClient.ReceiveBufferSize) As Byte
> > * * * * * *networkStream.Read(bytes, 0,
> > CInt(tcpClient.ReceiveBufferSize))' ---> *this is the line giving me
> > the error
> > * * * * * *' Output the data received from the host to the console.
> > * * * * * *Dim returndata As String =
> > Encoding.ASCII.GetString(bytes)
> > * * * * * *Console.WriteLine(("Host returned: " + returndata))
> > * * * *Else
> > * * * * * *If Not networkStream.CanRead Then
> > * * * * * * * *Console.WriteLine("cannot not write data to this
> > stream")
> > * * * * * * * *tcpClient.Close()
> > * * * * * *Else
> > * * * * * * * *If Not networkStream.CanWrite Then
> > * * * * * * * * * *Console.WriteLine("cannot read data from this
> > stream")
> > * * * * * * * * * *tcpClient.Close()
> > * * * * * * * *End If
> > * * * * * *End If
> > * * * *End If
> > * * * *' pause so user can view the console output
> > * * * *Console.ReadLine()
> > * *End Sub

>
> > End Class- Hide quoted text -

>
> - Show quoted text -


How can i convert this to VB?
 
Reply With Quote
 
id10t error
Guest
Posts: n/a
 
      05-22-2008
On May 22, 2:14*pm, id10t error <(E-Mail Removed)> wrote:
> On May 22, 2:00*pm, "George Ter-Saakov" <(E-Mail Removed)> wrote:
>
>
>
>
>
> > You code and words contradict each other...
> > You said you want to send something to printer.
> > But you code says networkStream.Read as if you trying to read something from
> > printer.

>
> > Here is the code i am using

>
> > public bool SendBytesToPrinter(byte[] p)
> > {
> > * * try
> > * * {
> > * * * * IPEndPoint ipEndPoint;
> > * * * * ipEndPoint = new IPEndPoint(IPAddress.Parse(_sName), 9100);
> > * * * * Socket socket;
> > * * * * using (socket = new
> > Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp))
> > * * * * {
> > * * * * * * socket.Connect(ipEndPoint);
> > * * * * * * socket.Send(p);
> > * * * * * * socket.Close();
> > * * * * }
> > * * * * return true;
> > * * }
> > * * catch (Exception e)
> > * * {
> > * * * * //TODO: do something with exception
> > * * * * return false;
> > * * }

>
> > }

>
> > George

>
> > "id10t error" <(E-Mail Removed)> wrote in message

>
> >news:(E-Mail Removed)...

>
> > > Hello,

>
> > > I am trying to write soem code that will send data to an Oneil
> > > printer
> > > over our network. I know the printer works and is setup correctly
> > > because I can print to it from there software. In my program i am
> > > getting this error.

>
> > > System.IO.IOException was unhandled
> > > *Message="Unable to read data from the transport connection: An
> > > existing connection was forcibly closed by the remote host."

>
> > > I will post my code below. Any help would be great.

>
> > > Imports System.Net.Sockets
> > > Imports System.Text
> > > Public Class Form2

>
> > > * *Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
> > > As System.EventArgs) Handles Button1.Click
> > > * * * *Dim tcpClient As New System.Net.Sockets.TcpClient()
> > > * * * *'tcpClient.Connect(hostname, *port)
> > > * * * *tcpClient.Connect("10.0.9.106", 515)
> > > * * * *Dim networkStream As NetworkStream = tcpClient.GetStream()
> > > * * * *If networkStream.CanWrite And networkStream.CanRead Then
> > > * * * * * *' Do a simple write.
> > > * * * * * *Dim sendBytes As [Byte]() =
> > > Encoding.ASCII.GetBytes(" EZ{PRINT,STOP350:@20,35:ZP08A|003|")
> > > * * * * * *networkStream.Write(sendBytes, 0, sendBytes.Length)
> > > * * * * * *' Read the NetworkStream into a byte buffer.
> > > * * * * * *Dim bytes(tcpClient.ReceiveBufferSize) As Byte
> > > * * * * * *networkStream.Read(bytes, 0,
> > > CInt(tcpClient.ReceiveBufferSize))' ---> *this is the line giving me
> > > the error
> > > * * * * * *' Output the data received from the host to the console.
> > > * * * * * *Dim returndata As String =
> > > Encoding.ASCII.GetString(bytes)
> > > * * * * * *Console.WriteLine(("Host returned: " + returndata))
> > > * * * *Else
> > > * * * * * *If Not networkStream.CanRead Then
> > > * * * * * * * *Console.WriteLine("cannot not write data to this
> > > stream")
> > > * * * * * * * *tcpClient.Close()
> > > * * * * * *Else
> > > * * * * * * * *If Not networkStream.CanWrite Then
> > > * * * * * * * * * *Console.WriteLine("cannot read data from this
> > > stream")
> > > * * * * * * * * * *tcpClient.Close()
> > > * * * * * * * *End If
> > > * * * * * *End If
> > > * * * *End If
> > > * * * *' pause so user can view the console output
> > > * * * *Console.ReadLine()
> > > * *End Sub

>
> > > End Class- Hide quoted text -

>
> > - Show quoted text -

>
> How can i convert this to VB?- Hide quoted text -
>
> - Show quoted text -


I figured it out. Just in case other people are having the same
problem here is the code i used.

Dim clsError As System.Net.Sockets.SocketError
Dim bMessage As Byte() =
System.Text.Encoding.ASCII.GetBytes("EZ{PRINT,STO P350:@20,35:ZP08A|
003|}")
Dim clsSocket As New Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp)
clsSocket.Connect("10.0.9.106", 515)
clsSocket.Send(bMessage, 0, bMessage.Length, SocketFlags.None,
clsError)
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




Advertisments