[ Omega Warrior @ 20.12.2007. 11:07 ] @
Pozdrav,

Radim na aplikaciji za windows CE.

Razvio sam dosta toga, ali sad dolazim do glavnog i najtežeg dijela.

trebam razvit dio tj. protokol za direktno povezivanje dva windows CE uređaja putem GPRS mreže odnosno interneta.

U aplikaciji imam popis IP adresa koje sam prethodno skinuo sa jednog servera, i sad korisnik izabere jednu od tih IP adresa i izabere upload ili download, i izabere file koji želi poslati na tu IP adresu.

S druge strane primaoc prima ili šalje ?

Jedina ideja mi je da iskoristim FTP upload i jednostavno upišem IP adresu, ali nebi reko da će to da radi. Vjerojatno ima nekih mjera predostrožnosti u windowsu CE koji ne dozvoljava da svatko šalje što hoće. Pa me zanima šta treba da uradim, koji portove otvorit koje sigurnosne postavke isključit/uključit itd...

Svaka ideja dobrodošla.

Unaprijed se zahvaljujem
[ Fedya @ 20.12.2007. 15:58 ] @
Da, u pravu si. FTP bi ti bio najjednostavnije resenje.
Pogledaj ovaj lib:
http://www.codeproject.com/KB/IP/ftplib.aspx

trebalo bi da radi.
Ako ti to iz nekog razloga ne prodje, savetujem da pogledas neko WCF resenje, ili postuj ovde pa probamo zajedno...
[ Omega Warrior @ 21.12.2007. 06:49 ] @
Hvala Fedya!

Nažalost otkrio sam da nemogu koristiti FTP, konekcija mora bit direktna odnosno P2P. Probao sam sa ovim kodom: (kompovi su mi iza routera pa vjerojatno zbog toga i neradi)

Kod za primanje: (odnosno za slušanje porta radi nadolazečeg fajla)

Public Function tcpPrimajFajl() As Boolean
Const portNumber As Integer = 8000
Dim tcpListener As New TcpListener(portNumber)

tcpListener.Start()
Console.WriteLine("Waiting for connection...")
Try

Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()

Dim networkStream As NetworkStream = tcpClient.GetStream()

Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))

Dim responseString As String = "Spojen na server"
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
networkStream.Write(sendBytes, 0, sendBytes.Length)

tcpClient.Close()
tcpListener.Stop()

Catch e As Exception
Console.WriteLine(e.ToString())
Console.ReadLine()
End Try
End Function



Kod za slanje fajla : (obadva koda imaju sve iste postavke i isti port)



Dim tcp As New System.Net.Sockets.TcpClient()

tcp.Connect(Me.tcpIPAdresa, Me.brojPorta)
Dim nStream As NetworkStream = tcp.GetStream
If nStream.CanRead And nStream.CanWrite Then
Dim sendBytes() As Byte = Encoding.ASCII.GetBytes("uspjeh")
nStream.Write(sendBytes, 0, sendBytes.Length)
Dim bytes(tcp.ReceiveBufferSize) As Byte
nStream.Read(bytes, 0, CInt(tcp.ReceiveBufferSize))
Dim returnData As String = Encoding.ASCII.GetString(bytes)
Console.WriteLine("Vraceno : " + returnData)

Return True

Else
If Not nStream.CanRead Then
MsgBox("Greška, nemoguće pisat")
tcp.Close()
Return False
Else
If Not nStream.CanWrite Then
MsgBox("nemoguce ocitat podatke iz streama")
tcp.Close()
Return False
End If
End If
End If

End Function


Unaprijed se zahvaljujem