[J2ME-PHP] Socket verbinding

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik ben bezig op m'n J2ME device om een socketserver aan te maken, waarbij ik dan op het internet via PHP m'n socket kan betreden, om zo data te sturen van het internet naar m'n device. Maar ik krijg constant een ' java.io.EOFException ' .. en ik heb geen idee waar het probleem zich kan bevinden.

Volgens mij is PHP code om data via de socket te versturen ok:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if(isset($_GET['ip']) ){
        $ip = $_GET['ip'];
    
    /* Create a socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
   echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
} else {
   echo "OK.\n";
}

echo "Attempting to connect to '$ip' on port 80...";
$result = socket_connect($socket, $ip, 80);
if ($result < 0) {
   echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
   echo "OK.\n";
}

$in = "t";  // het karakter 't' versturen

echo "Sending parameter...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
  
}


Maar voglens mij doe ik iets verkeerd qua inlezen op m'n J2ME device:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
               // START SERVER              
                    try {
                    ServerSocketConnection server = (ServerSocketConnection) Connector.open("socket://:80");
                    System.out.println(server.getLocalAddress());
                   
                    while (running_check_diagnose){
                        // blijft hier wachten
                        SocketConnection client = (SocketConnection) server.acceptAndOpen();
                        System.out.println("DATA ONTVANGEN");
                        // Get the input stream of the connection.
                        DataInputStream is = client.openDataInputStream();                       
                        // Read the input data.
                        int test = is.read(); // karakter binnenlezen
                        System.out.println("karakter binnen");
                    }
                    server.close();
                  }
                  catch (IOException ex) {
                    ex.printStackTrace();
                  }


iemand die de fout zou weten?
Alvast bedankt

Acties:
  • 0 Henk 'm!

  • MNeMoNiCS
  • Registratie: Mei 2002
  • Laatst online: 16-10-2012
Treedt die exception ook op als je de socket niet sluit in het PHP script? Zo niet, laat de client de close() dan eens uitvoeren nadat de data ontvangen is.

Acties:
  • 0 Henk 'm!

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 07-07 10:36
komt het misschien doordat je nog een echo uitvoert na het sluiten van je socket?

kun je ook de stacktrace planten?

[ Voor 18% gewijzigd door martennis op 26-01-2007 13:27 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MNeMoNiCS schreef op vrijdag 26 januari 2007 @ 13:23:
Treedt die exception ook op als je de socket niet sluit in het PHP script? Zo niet, laat de client de close() dan eens uitvoeren nadat de data ontvangen is.
ja die exception treed ook op als ik de socket niet sluit ..

lijkt me een vaag probleem :?

Acties:
  • 0 Henk 'm!

  • MNeMoNiCS
  • Registratie: Mei 2002
  • Laatst online: 16-10-2012
en als je voor de read, available() , aanroept, krijg je dan een waarde groter dan 0?

code:
1
2
public int available() throws IOException
// Returns the number of bytes that can be read from this input stream without blocking