PDA

View Full Version : اشکال در اجرای یک برنامه (winsock)



pooya1072
شنبه 14 فروردین 1389, 13:32 عصر
با سلام به دوستان
من برنامه نویسی شبکه رو تازه شروع کردم.یه برنامه نوشتم(با هزار دردسر)یه برنامه chat خیلی ساده.که عبارت از یک فایل client و یه فایل server.
هر کدوم رو جداگانه کامپایل کردم و در حال حاضر می خوام هر دوتاش رو روی سیستم خودم اجرا کنم.ولی خطا میده .source هر دوتاش رو میزارم و پیغام خطا رو هم میزارم.یه لطف کنید مشکلش رو ببینید چیه.
با تشکر....

source فایل client :



Private Sub Connect_Click()
TcpClient.Connect
End Sub

Private Sub Form_Load()
TcpClient.RemoteHost = "pooya"
TcpClient.RemotePort = 1000
End Sub

Private Sub Form_Unload(Cancel As Integer)
TcpClient.Close
End Sub

Private Sub Send_Click()
TcpClient.SendData txtSend.Text
End Sub

Private Sub TcpClient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
TcpClient.GetData strData
txtRecive.Text = strData
End Sub



source فایل server :



Private Sub Form_Load()
TcpServer.LocalPort = 1000
TcpServer.Listen
End Sub

Private Sub Form_Unload(Cancel As Integer)
TcpServer.Close
End Sub

Private Sub Send_Click()
TcpServer.SendData txtSend.Text
End Sub

Private Sub Tcpserver_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
TcpServer.GetData strData
txtRecive.Text = strData
End Sub

Private Sub TcpServer_ConnectionRequest(ByVal requestID As Long)
If TcpServer <> sckClosed Then TcpServer.Close
TcpServer.Accept requestID
End Sub


متن پیغام خطا هم اینه :


'

Run-Time error '40006
Wrong protocol or connection state for the requested transaction or request




در ضمن component استفاده شده Microsoft WinSock control 6 است.
اگه ممنکه تصحیح شده این برنامه رو برام بزارین

ali682344
شنبه 14 فروردین 1389, 15:03 عصر
بيا اين سورس و ببين شايد مشكل حل بشه

myklik
شنبه 21 فروردین 1389, 11:22 صبح
بيا اين سورس و ببين شايد مشكل حل بشه
برام توضیح میدی کد زیر کارش چی بید
If Socketer.State = sckClosed Then
Socketer.Close
Socketer.Connect txtip, "1234"
ممنون

ameri110
دوشنبه 24 خرداد 1389, 17:14 عصر
از پرت های دیگه استفاده کن
مثل 1019

ali682344
دوشنبه 24 خرداد 1389, 17:55 عصر
برام توضیح میدی کد زیر کارش چی بید
If Socketer.State = sckClosed Then
Socketer.Close
Socketer.Connect txtip, "1234"
ممنون

سلام
ببین دوست عزیز خط اول این کد چک می کنه اگه سوکت در حال استفاده است اون سوکتو می بنده.
خط بعدی میاد با ip سیستمی که داخل تکست باکس نوشتی( که در اینجا اسمش هست txtip )و با پورت 1234 به سیستم مورد نظر وصل میشه.