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....
