Avatar billede trenskow Nybegynder
23. marts 2005 - 15:30 Der er 1 kommentar og
1 løsning

Hjælp til .NET og Java interoperabilitet igen

import javax.microedition.midlet.*;
import java.io.*;
import java.util.*;
import com.siemens.icm.io.*;
import javax.microedition.io.*;
import javax.microedition.midlet.*;
Hejsa allesammen

Vi er ved at rode med noget J2ME MIDP1 og C#. Vi er ved at lave en  en client til J2ME og server i C#
Nedenståden er vores klient i J2ME.

###################################################################

import java.io.*;
public class SocketThread extends Thread{
    private InputStream is = null;
    private OutputStream os = null;
    private StreamConnection cs = null;
    String dest = "192.168.1.146";
    int port = 2235;
    String streng = "5";
   
    /** Creates a new instance of SocketThread */
    public SocketThread() {
    }
  public void start(){
        try{
            cs = (StreamConnection)Connector.open("socket://" + dest + ":" + port);
            os = cs.openOutputStream();
            is = cs.openInputStream();
        } catch (IOException e) {
            System.out.println("Error in networking...: " + e);
        }
            System.out.println("Thread is Running! Trying to Connect socket://" + dest + ":" + port);
           
            try{
                os.  write(streng.getBytes());
                os.flush(); 
            } catch (IOException e) {
                System.out.println("Error Writing to OutputStream....  " + e);
            }       
    }   
    public void stop(){
        //running = false;
    }   
}
#####################################################################

Vi har så brugt arne_v's kode til at lave en C# server.
Ser sådan her ud.

###################################################################
udsnit

        public TextClientHandler(TcpClient cli, Decoder decoder)
        {
            // initialiser læse og skrive klasser
            this.cli = cli;
            sr = new StreamReader(cli.GetStream());
            decoder.decodeString(sr);
            cli.Close();
        }


################################################################

udsnit af Decode klassen

        public Decoder(Tc45Controller tc)
        {
            tc45 = tc;
            TcpListener srv = new TcpListener(IPAddress.Any, 2235);
            srv.Start();
            while(true)
            {
                try
                {
                    // accepter connection fra client
                    TcpClient cli = srv.AcceptTcpClient();
                    Console.WriteLine("Ny klient acepteret");
                    // start tråd til at håndtere client
                    TextClientHandler tch = new TextClientHandler(cli, this);
                    Console.WriteLine("Ny tråd laves");
                    //(new Thread(new ThreadStart(tch.Run))).Start();
                }
                catch(SocketException e)
                {
                    Console.WriteLine(e);
                }

            }               
        }
        public void decodeString(StreamReader sr)
        {
            string line;
            // læs input fra client
            try
            {
                }
                while((line = sr.ReadLine()) != null)  <--------
                {
                    // split input fra client op i dele
                    if(parts[0].ToUpper() == "POS")
                    {

og så videre derned af... men når den kommer til sr.ReadLline().. så er den null...

Nogen der ved hvad vores problem er... hvis jeg laver en C# klient og kalder op til server, så er der ingen problem....
Avatar billede trenskow Nybegynder
23. marts 2005 - 15:31 #1
Hovsa... der er sket noget rod med postningen.... alle de imports den starter med, skulle være i starten af java klassen....
Avatar billede trenskow Nybegynder
24. marts 2005 - 22:39 #2
Fandt selv fejlen.... koden kommer her til j2me klienten..

import java.io.*;
import javax.microedition.io.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author Rasmus Trenskow
* @version 1.0
*/

public class SocketTest {
  StreamConnection Sock = null;
  OutputStream os = null;
  //InputStream is = null;

  public SocketTest() {
    try {
      Sock = (StreamConnection) Connector.open("socket://localhost:2235");
      //is = Sock.openInputStream();
      os = Sock.openOutputStream();
    }
    catch (IOException ex) {
      System.out.println("ex");
    }
    String send = ("NEW localhost rasmus um55699");
    try {
      os.write(send.getBytes());
    }
    catch (IOException ex1) {
      System.out.println("ex1");
    }
    try {
      os.close();
    }
    catch (IOException ex2) {
      System.out.println("ex2");
    }
    try {
      Sock.close();
    }
    catch (IOException ex3) {
      System.out.println("ex3");
    }
  }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester