Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / May 2008

Tip: Looking for answers? Try searching our database.

TCP/IP

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
id10t error - 22 May 2008 18:24 GMT
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
George Ter-Saakov - 22 May 2008 19:00 GMT
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.Stream,ProtocolType.Tcp))
       {
           socket.Connect(ipEndPoint);
           socket.Send(p);
           socket.Close();
       }
       return true;
   }
   catch (Exception e)
   {
       //TODO: do something with exception
       return false;
   }
}

George

> Hello,
>
[quoted text clipped - 52 lines]
>
> End Class
id10t error - 22 May 2008 19:14 GMT
> You code and words contradict each other...
> You said you want to send something to printer.
[quoted text clipped - 87 lines]
>
> - Show quoted text -

How can i convert this to VB?
id10t error - 22 May 2008 19:54 GMT
> > You code and words contradict each other...
> > You said you want to send something to printer.
[quoted text clipped - 95 lines]
>
> - 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,STOP350:@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)

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.