Jump to content

Client - Server Ilişkisi Hata Nerede ?


LifeSux
 Share

Recommended Posts

Autoitte bu server client ilişkisini öğrenmek için bir kod yazdım.Kendi bilgisayarımda gayet güzel çalışıyor ama başka bilgisayarda hata alıyorum.

Belirtilen port açık. Test programlarıylada test ettim.

Client:
[code]

#include <GUIConstants.au3>

$ServerIP = @IPAddress1



$Port = 33891

TCPStartup()

$ConnectedSocket = TCPConnect($ServerIP, $Port)

If @error Then
MsgBox(4112, "Hata", "Bağlantı Başarısız." & @error)
Else
While 1
$Data = InputBox("Gönderilecek Komut", "Lütfen gönderilecek komutu yazınız.")
If @error or $Data = "" Then ExitLoop
TCPSend($ConnectedSocket, $Data)
If @error Then ExitLoop

WEnd
EndIf[/code]

Server:
[code]#include <GUIConstants.au3>


$ServerIP = @IPAddress1
$Port = 33891

TCPStartup()
$MainSocket = TCPListen($ServerIP, $Port)
if $MainSocket = -1 Then Exit

$ConnectedSocket = -1

Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1

While 1
$recv = TCPRecv($ConnectedSocket, 2048)
if @error Then ExitLoop

if $recv <> "" Then

_CommandToAction($recv)
EndIf
WEnd

if $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)
TCPShutdown()


Func _CommandToAction($command)
$ar = StringSplit($command, "|")
Switch $ar[1]
Case "Msg"
MsgBox(0, $ar[2], $ar[3])
EndSwitch
EndFunc
[/code]

Hata nerede arkadaşlar ??? Neden çalışmıyor sizce ? Sanırım @Ipadress1 de bir sorun oldu ? acaba sadece kendi içinde mi dönüyor ya bu ?? nasıl düzelticem acaba?? Edited by LifeSux
Link to comment
Share on other sites

@LifeSux

Örneğini fazla incelemedim, lakin ip hatalı olabilir.
Kısaca serverden client bilgisayara mesaj gödnereceksen, serverde çalışan bilgisayar clientin ipsine bağlanmalı! Kısaca @IPAddress1 macrosu yerine clientin ipsi yazılmalı. Clientte çalışan program için ise, gendle @IPAddress1 macrosu işe yarayacaktır.

Dediğim gibi fazla vaktim olmadığından örneğini incelemedim :(

@LifeSux

Örneğini fazla incelemedim, lakin ip hatalı olabilir.
Kısaca serverden client bilgisayara mesaj gödnereceksen, serverde çalışan bilgisayar clientin ipsine bağlanmalı! Kısaca @IPAddress1 macrosu yerine clientin ipsi yazılmalı. Clientte çalışan program için ise, gendle @IPAddress1 macrosu işe yarayacaktır.

Dediğim gibi fazla vaktim olmadığından örneğini incelemedim :(

Link to comment
Share on other sites

@LifeSux

Aynı ağ üzerindeyseniz (yani yerel ağ) port vs. açamana gerek yok diye hatırlıyorum. Ben bir süre önce benzer bir şey hazırlamıştım.
Biraz kurcala, eğer başaramazsan senin için bir ara kodlarını elden geçirebilirim...

http://www.tnctr.com/topic/196991-serverden-adhdaki-bilgisayarlara-ythlem-yaptyrmak/

Kolay gelsin....

Link to comment
Share on other sites

[quote name='blue_life' date='29 March 2012 - 10:29 ' timestamp='1333009779' post='1177043']
@LifeSux

Aynı ağ üzerindeyseniz (yani yerel ağ) port vs. açamana gerek yok diye hatırlıyorum. Ben bir süre önce benzer bir şey hazırlamıştım.
Biraz kurcala, eğer başaramazsan senin için bir ara kodlarını elden geçirebilirim...

http://www.tnctr.com/topic/196991-serverden-adhdaki-bilgisayarlara-ythlem-yaptyrmak/

Kolay gelsin....
[/quote]

Hayır aynı ağda değiliz arkadaşımla. O farklı evde farklı modemde ben farklı evde farklı modemde. Hala beceremedim bir türlü.Benim kodlara bir el atarsan harika olucak.

Edited by LifeSux
Link to comment
Share on other sites

@LifeSux

Ilgili komutları çok fazla kullanmadım ve şuan yeterli zamanım da yok. Önümüzdeki hafta içi bu konuya bakmaya çalışacağım.
Yalnız uzak bilgisayar ile bağlantı kuracağına göre senin kullandığın ip yerel olduğu için hatalıdır. Kısacası uzak ip adresini kullanman belki sorunu çözebilir.

[code]#include <Inet.au3>

Local $PublicIP = _GetIP()
MsgBox(0, "IP Address", "Your IP Address is: " & $PublicIP)[/code]

Umarım çözebilirsin, kolay gelsin...

Link to comment
Share on other sites

[quote name='blue_life' date='29 March 2012 - 19:51 ' timestamp='1333043462' post='1177305']
@LifeSux

Ilgili komutları çok fazla kullanmadım ve şuan yeterli zamanım da yok. Önümüzdeki hafta içi bu konuya bakmaya çalışacağım.
Yalnız uzak bilgisayar ile bağlantı kuracağına göre senin kullandığın ip yerel olduğu için hatalıdır. Kısacası uzak ip adresini kullanman belki sorunu çözebilir.

[code]#include <Inet.au3>

Local $PublicIP = _GetIP()
MsgBox(0, "IP Address", "Your IP Address is: " & $PublicIP)[/code]

Umarım çözebilirsin, kolay gelsin...
[/quote]

Göz atabildin mi blue ??

Link to comment
Share on other sites

@LifeSux

Şimdi baktım ve malesef başarıya ulaşamadım. Lakin düşüncelerimi (yanlışda olabilir, çünkü bu konularda fazla bilgim yok) kısaca yazmak istiyorum.
Sen uzaktaki bir bilgisayara mesaj göndermek için, o bilgisayarın uzak ipsini kullanmalısın. Haliyle ilgili bilgisayarda da bağlantı yaptığınız port, modemden ilgili bilgisaraya yönlendirilmiş olması gerek.

Şöyle analatayım;

1. bilgisyarımız server olsun. Yani bu 1. bilgisayardan mesaj diğer bilgisayara gönderilecek. Bu bilgisayarın ipleri önemli deyil.
2. bilgisayarımız haliyle cilent oluyor ve uzak ip adresi 78.169.235.1 olsun. Bu bilgisayarın yerel ağdaki ip adresi de 192.168.2.4 olsun.

Sen 1. bilgisayardan mesajını 78.169.235.1 ip adresine göndereceksin ve mesajı gönderdiğinde bu mesaj ikinci bilgisayarımızın modemine ulacaşacak. Modemden bu bilginin yönlendirileceği kısımı haliyle nat bölümünden ayarlıyoruz. Işte ilgili kullandığımız port için ilgili yerel ağdaki ipmize yönledirme yapacağız. Yani 192.168.2.4 de yönlendirme yapacağız. Bu sayede modem ilgili porttan gelen veriyi 192.168.2.4 göndermiş olacak ve ikinci bilgisayarımızda çalışan client programı bu mesajı okuyacak.

Benim bildiğim kadarıyla böyle bir şeydi. Eğer hızlı bir ftp sunucun var ise, yapmak istediğin ftp sunucusuylada yapabilirsin. Yani serverden gönderilecek mesaj, ftpdeki bir dosyaya aktarılır ve client bu aktarılan dosyadaki mesajı okur. Forumda buna benzer örnekler vardı diye hatırlıyorum.

Ftp hesabın yoksa, free hesapta açabilirsin. Free hizmet veren sitelere googlede ufak aramalar sonucu ulaşabileceğini düşünüyorum.
Fazla yardımcı olamadım kusura bakma, kolay gelsin...

Edited by blue_life
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...