300D SIM interfaţare cu serverul

M

movie_freak

Guest
Salut,

I sînt cu care se confruntă următoarea problemă:Eu am proiectat un program client, pe baza SIM300D GPRS.Nu ar fi mulţi clienţi similare de lucru, în acelaşi timp, în cerereaÎnţeleg că Programul de Sever ar trebui să fie multi-threaded pentru a primi mai mult de o conexiune la un moment dat, pe care cred că este, şi este o bazate pe Java server.

Durata i date doriţi să trimiteţi nu este acelaşi de fiecare dată.După cum probabil ştiţi, cu AT cipsend, eu pot trimite doar 1024 bytes de date la un moment dat.

Serverul se comportă îi place acest lucru:
(Nu este proiectat de mine şi nu am interioare cunoştinţe de lucru este de punere în aplicare)

De îndată ce clientul începe o cerere de conectare la server acceptă conexiunea, şi primeşte date, ci ca
de îndată ce voi primi "TRIMITE OK", I de asemenea a lua "CLOSED", care înseamnă serverul a închis conexiunea fără a emite orice AT INCHIDE comanda

Acum, în acest caz, dacă eu am mai mare de date pentru a trimite eu am nevoie pentru a vă conecta la server din nou şi din nou şi a trimite date, care cred că nu este de preferatAm solicitat Guy (care au proiectat codul de server) pentru a creşte timpul de afară sau în locul păstrarea conexiunea mereu deschis,
aşa cum cred că conexiunea GPRS poate fi menţinută atât timp cât clientul este în reţea şi a pornit, în acest fel am nevoie pentru a verifica starea conexiunii de la client cu Sever şi trimite date ..

Deci, în acest fel pot emite mai multe comenzi la cipsend şi a trimite date de mare

Tipul spune ca serverul creează un tunel pentru fiecare client corespunzătoare şi aceasta trebuie să fie închis tot, altfel programul de server nu va putea primi mai multe date cu clientii.
El îmi spune, de asemenea, în loc de a schimba programul client, astfel încât ori de câte ori este necesar pentru a trimite o cantitate mai mare de date, trimite-o pe un număr de port diffent de acelaşi server
ori de câte ori, astfel încât clienţii vor trimite date de mare va fi primit la data de alte porturi şi va servi scop, el va pune în aplicare necesare.

Aşa că aş vrea să ştiu dacă acest lucru este o soluţie bună?Cât de mult este aceasta adevărat şi sunt acolo orice alte alternative disponibile pentru a rezolva problema?

De asemenea, în cazul în care orice unul a putea ajută-mă să înţeleg, modul în care comunicarea se face la sfârşitul server
Many Thanks,
Surya

 
Sunt proiectarea unui sistem similar ca a dumneavoastră, server (în Java) şi GPRS dispozitiv pe bază.
Cred că cea mai bună opţiune este că problema dispozitivul GPRS AT INCHIDE comanda, dar în cazul în care serverul trebuie să închideţi întotdeauna sfârşitul socket-vă mesajele cu un '\ n' sau '\ caracter R ", care este capătul de linie de caractere pentru readline funcţia pe care este folosit în Java pentru a citi datele de la fluxul de priză şi apoi puteţi trimite toate datele, înainte de a servi închide socket.
Trebuie să conectaţi din nou şi din nou, pentru că de fiecare dată când deschide o conexiune la PC alocă memorie pentru el, şi dacă nu vă deconectaţi, veţi avea o mulţime de fire deschis în acelaşi timp, şi se va ocupa prea mult RAM.Cel mai bine este ca fiecare client se conectează, trimite datele şi deconectaţi din nou şi din nou, pentru că nu va fi mai puţin conexiuni si fire deschis în acelaşi timp, fiind o soluţie mai eficientă.

 

Welcome to EDABoard.com

Sponsor

Back
Top