Java 服务器套接字不接受连接
我有以下JAVA代码来创建服务器套接字以侦听传入连接:Java 服务器套接字不接受连接,java,android,Java,Android,我有以下JAVA代码来创建服务器套接字以侦听传入连接: public class ConnectOracle { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; // String serverName = "10.11.201.84"; String portNumber = "1521"; String db = "XE"; St
public class ConnectOracle {
public static void main(String[] args) {
String driver = "oracle.jdbc.driver.OracleDriver"; //
String serverName = "10.11.201.84";
String portNumber = "1521";
String db = "XE";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":"
+ db; // connectOracle is the data
// source name
String user = "ORAP"; // username of oracle database
String pwd = "ORAP"; // password of oracle database
Connection con = null;
ServerSocket serverSocket = null;
Socket socket = null;
DataInputStream dataInputStream = null;
DataOutputStream dataOutputStream = null;
try {
Class.forName(driver);// for loading the jdbc driver
System.out.println("JDBC Driver loaded");
con = DriverManager.getConnection(url, user, pwd);// for
// establishing
// connection
// with database
Statement stmt = (Statement) con.createStatement();
serverSocket = new ServerSocket(8888);
System.out.println("Listening :8888");
while (true) {
try {
socket = serverSocket.accept();
System.out.println("Connection Created");
dataInputStream = new DataInputStream(
socket.getInputStream());
dataOutputStream = new DataOutputStream(
socket.getOutputStream());
System.out.println("ip: " + socket.getInetAddress());
// System.out.println("message: " +
// dataInputStream.readUTF());
ResultSet res=stmt.executeQuery("select * from food_category");
while(res.next()){
System.out.println(res.getString(1));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (dataInputStream != null) {
try {
dataInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dataOutputStream != null) {
try {
dataOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在我的Android程序中,我试图与这个JAVA程序建立连接。代码如下:
class ConnectToOracle extends AsyncTask<String, String, String> {
Socket socket = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
@Override
protected void onPreExecute() {
super.onPreExecute();
;
}
// Download Music File from Internet
@Override
protected String doInBackground(String... f_url) {
try {
socket = new Socket("10.11.201.84", 8888);
dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream.writeUTF(textOut.getText().toString());
textIn.setText(dataInputStream.readUTF());
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if (socket != null){
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dataOutputStream != null){
try {
dataOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dataInputStream != null){
try {
dataInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return null;
}
// Once Music File is downloaded
@Override
protected void onPostExecute(String file_url) {
// Dismiss the dialog after the Music file was downloaded
}
}
class ConnectToOracle扩展了异步任务{
套接字=空;
DataOutputStream DataOutputStream=null;
DataInputStream DataInputStream=null;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
;
}
//从Internet下载音乐文件
@凌驾
受保护的字符串doInBackground(字符串…f_url){
试一试{
插座=新插座(“10.11.201.84”,8888);
dataOutputStream=新的dataOutputStream(socket.getOutputStream());
dataInputStream=新的dataInputStream(socket.getInputStream());
dataOutputStream.writeUTF(textOut.getText().toString());
setText(dataInputStream.readUTF());
}捕获(未知后异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
最后{
if(套接字!=null){
试一试{
socket.close();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
如果(dataOutputStream!=null){
试一试{
dataOutputStream.close();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
如果(dataInputStream!=null){
试一试{
dataInputStream.close();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}
返回null;
}
//下载音乐文件后
@凌驾
受保护的void onPostExecute(字符串文件\u url){
//下载音乐文件后关闭对话框
}
}
但这种联系尚未建立。如何建立连接?任何建议都有很大帮助 显示堆栈跟踪我不在stacktrace中打印任何内容。当我运行Java代码时,它会显示JDBC驱动程序加载侦听:8888您的服务器是否可以通过用于建立连接的设备/模拟器访问?(网络方面)确保服务器防火墙上的端口
8888
已打开我的手机已连接到网络。还有什么我能做的吗?向我们展示堆栈跟踪我不在stacktrace中打印任何东西。当我运行Java代码时,它会说JDBC驱动程序加载侦听:8888您的服务器是否可以通过用于建立连接的设备/模拟器访问?(网络方面)确保服务器防火墙上的端口8888
已打开我的手机已连接到网络。还有什么我能做的吗?