Merhabalar;
Gün geçtikçe ihtiyaçlarımız da farklılaşır. Yapacağımız işlerin sürekli olarak aynı yöntem ile yapmaktan ise farklı yollar seçmek isteriz. Bu Log’um da size anlatacağım konu ise AspDotNet uygulamalarınız da kullabileceğiniz bir türlü TCP haberleşmesini anlatacağım. Ben şahsen eğer ki Windows Form’u ile haberleşecek bir program ve Web Uygulaması yapacaksam hemen TCP haberleşmesini kullanıyorum ki en azından Default gelen 80 portu haricinde haberleşme sağlayabiliyoruz. Ben bu yazımda sizlere 7076 portundan nasıl haber verip alması ile örnek bir kod vereceğim. Kod’un size çok fazla yarar sağlıyacağını umuyorum. Bu haberleşme hem Windows Form hemde AspDotNet kanalı ile nasıl yapılacağını çok rahat bir şekilde anlayacaksınızdır.İlk önce yaratacağımız bir Windows Form projesidir. Bu proje içerisinde sürekli olarak değil fakat form’un load event’ına ekleyeceğimiz kod ile haberleşmeyi açmayı göstereceğim.
Form İçin gerekli olanlar
Imports System.Net
Imports System.Net.Sockets
Imports System.Web.HttpUtility
Imports System.Text
Public Class’ın Event bölümüne koyacağımız
Const portNumber As Integer = 7076
Dim tcpListener As New TcpListener(portNumber)
bu iki kod ile TCP Listining’i başlatmış olacağız. Bu sayede 7076 portundan rahatça bağlantı sağlayabileceksiniz. Form’un Load Event’ına ise
tcpListener.Start()
bu kodu yerleştirdiğimiz de işlemimiz tamamdır.
Şimdi sırada Web Form üzerinden TCPClient istemcimizi kurmaya. Bunun için ise bir Web Form Projesi oluşturuyoruz ve gerekli olanlar ise
Imports System.Net
Imports System.Net.Sockets
Imports System.Web.HttpUtility
Imports System.Text
şeklindedir.
Default.aspx.vb dosyamızın codebehind kısmında ise Form’un Load Event’ına ekleyeceğimiz bu kod sayesinde artık TCP üzerinden nasıl haberleşme yapıldığınız öğrenmiş bulunmaktasınız.
Try
Dim tcpClient As New System.Net.Sockets.TcpClient()
tcpClient.Connect(“127.0.0.1″, 7076)
Dim networkStream As NetworkStream = tcpClient.GetStream()
If networkStream.CanWrite And networkStream.CanRead Then
response.write(“Tamamdır.”)
Else
If Not networkStream.CanRead Then
response.write(“Sunucu Bağlantısı yapılamadı. <br>Lütfen Tekrar deneyiniz.”)
tcpClient.Close()
Else
If Not networkStream.CanWrite Then
response.write(“Sunucu Bağlantısı yapılamadı. <br>Lütfen Tekrar deneyiniz.”)
tcpClient.Close()
End If
End If
End If
Catch ex As System.Net.Sockets.SocketException
If (ex.ErrorCode = 10061) Then
response.write(“Sunucu Bağlantısı yapılamadı. <br>Lütfen Tekrar deneyiniz.”)
End If
End Try
Alper TAYFUN