📄 server.java
字号:
package com.j2medev.ch6.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.io.ServerSocketConnection;
import javax.microedition.io.SocketConnection;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
public class Server implements Runnable {
private ChatMIDlet midlet = null;
private Form displayForm = null;
private StringItem item = null;
private ServerSocketConnection serverSocket = null;
private SocketConnection socket = null;
private boolean stop = false;
public Server(ChatMIDlet midlet) {
this.midlet = midlet;
displayForm = new Form("服务器");
item = new StringItem("连接状态:","");
displayForm.append(item);
midlet.setCurrent(displayForm);
}
public void run(){
try{
serverSocket = (ServerSocketConnection)Connector.open("socket://:1290");
final String ip = serverSocket.getLocalAddress();
final int port = serverSocket.getLocalPort();
new Thread(){
public void run(){
try{
HttpConnection conn = (HttpConnection)Connector.open("http://localhost:8080/post/publish");
conn.setRequestMethod(HttpConnection.POST);
conn.setRequestProperty("Conntent-Type", "application/octet-stream");
DataOutputStream dos = conn.openDataOutputStream();
dos.writeByte(100);//发送ip和port
dos.writeUTF(ip);
dos.writeInt(port);
dos.close();
conn.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
}.start();
item.setText("建立监听"+ip+":"+port);
String host = System.getProperty("microedition.hostname");
if(host != null)
displayForm.append("主机名称:"+host+"\n");
socket = (SocketConnection)serverSocket.acceptAndOpen();
item.setText(socket.getAddress()+":"+socket.getPort()+"已连接");
DataInputStream dis = socket.openDataInputStream();
while(!stop){
System.out.println("go");
String result = dis.readUTF();
displayForm.append(result+"\n");
}
dis.close();
socket.close();
serverSocket.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
public void stop(){
stop = true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -