PDA

View Full Version : Socket Programming and DNS برنامه نویسی تحت شبکه و حالگیری



hamed_bostan
شنبه 28 خرداد 1384, 16:32 عصر
سلام

من یه برنامه ارم که از socket استفاده می کنه و باید تحت شبکه کار کنه اما من به یه مشکل گنده بر خوردم و اون اینکه سیستم ها هر دو تاشون به غیر از IP دارای DNS هم هستند . حالا نمی دونم توی قسمتی که TcpClientرو تعریف می کنم و IP سیستم رسرور رو برای connect شدن client بخ اون می دم برنامه error می ده . می خوام بدونم ایا باید DNS رو هم جایی بدم یا نه ؟؟؟؟؟؟

saeedIRHA
شنبه 28 خرداد 1384, 20:40 عصر
سلام دوست عزیز!
می شه Source برنامه تنو بزارین که من یک نیگاهی بهش بندازم شاید بتونم کمکتون
کنم!
من خودم برنامه که با Socket کار کنه نوشتم و تنها چیزی که از من خواسته فقط IP
بوده!ولی همون جور که گفتم باید سورس رو ببینم !

سعید
:sunglass: :گیج:

hamed_bostan
یک شنبه 29 خرداد 1384, 09:12 صبح
سورس برنامه که خیلی بزرگه و نمیشه . دوما شما که برنامه تحت socket می نویسید پس باید بتونید کمکم کنید . همونطور که خودتون هم کار کردید من همونطور tcplictener در سرور و tcpclient در کلاینت تریف کردم و به tcpclient خودم IP سرور رو دادم ولی چون سیستم ها DNS ه داره علاوه بر IP نمی ونم چیز دیگهای باید اضافه کنم یا نه

dim TcpC as new tcpClient("Computer name Or Computer IP","Pr as Port")

ایا جز این چیر دیگه ای هم بایذ اضافه شه

saeedIRHA
یک شنبه 29 خرداد 1384, 18:38 عصر
سلام دوسته عزیز!
من یک سورس برات میزرم که ببینی کرش چطوره!
و این برنامه که من نوشتم تو اینترنت کار کرده بینه 2 کامپیوتر مختلف از 2 server
متفاوت!و همون جورم که میدونید هر server DNS (Domain name Server) مخصوص به خودشو
داشته: :)
:Tcpclient


Dim tcpclient As New System.Net.Sockets.TcpClient
Dim ip As String
Dim port As String
( ip = Convert.ToString(txtIP.Text
(port = Convert.ToString(txtport.Text
tcpclient.Connect(ip, port)
" lblstatus.Text = "<-----Connected
فرستادن نوشته به صورت byte:
Dim networkstream As NetworkStream = tcpclient.GetStream()
Dim send As [Byte]() = Encoding.ASCII.GetBytes(txtmsg.Text)
networkstream.Write(send, 0, send.Length)

----------------------------------------------- TcpListener-----------------------------
Const portNumber As Integer = 8000
Dim tcplistener As New tcplistener(portNumber)
tcplistener.Start()
Dim tcpclient As TcpClient = tcplistener.AcceptTcpClient()
Dim NWstream As NetworkStream = tcpclient.GetStream()
If NWstream.CanWrite And NWstream.CanRead Then
lblstatus.Text = "!!متصل شد!!"
Else
lblstatus.Text = "not connected"
End If
گرفتن byte و Decode کردنش به نوشته!
Dim bytes(tcpclient.ReceiveBufferSize) As Byte
NWstream.Read(bytes, 0, CInt(tcpclient.ReceiveBufferSize))
Dim clientdata As String = Encoding.ASCII.GetString(bytes)
txtdata.Text = clientdata
tcplistener.Stop()
tcpclient.Close()
همین!
فقط 1 نکته: اینکه Firewall windows رو یک نیگاهی بهش بنداز!
بدش شبکه که دارین این کارو براش میکنی چه جور شبکه هست ؟؟؟؟؟؟
:sunglass: :sunglass:

hamed_bostan
یک شنبه 29 خرداد 1384, 22:45 عصر
لطفتون رو فراموش نمی کنم .
ممنونم

karimi_fat
پنج شنبه 05 دی 1387, 12:14 عصر
سلام بابت کمکتون خیلی خیلی ممنون برنامتون خیلی به دردم خورد.

mostafaaa
یک شنبه 08 دی 1387, 09:29 صبح
سلام دوست من
شما برای کارتون نیازی به DNS ندارید، همون IP سرور کفایت میکنه!!
در ضمن به عنوان یه پیشنهاد دوستانه ، قبل از اینکه شروع به برنامه نویسی شبکه کنی ، سعی کن مقدمات شبکه رو یاد بگیری تا توی برنامه نویسی شبکه دید داشته باشی!!