【发布时间】:2016-05-21 19:16:41
【问题描述】:
我正在做一个客户端服务器应用程序,我在客户端和服务器端使用打开的套接字来建立连接。
客户端(Android 手机):
try {
InetAddress serverAddr = InetAddress.getByName(serverIp);
socket = new Socket(serverAddr, PORT);
}
服务器:
sS = new ServerSocket(PORT);
sO = new Socket();
sO = sS.accept();
两者具有相同的 PORT 值,我确信服务器 IP 地址是正确的。它在上个月有效,但当我昨天尝试时,它不再有效。
如果我再次克隆它但仍然没有工作(从它工作的安全提交)。
我有上网权限:
<uses-permission android:name="android.permission.INTERNET" />
不知道是不是跟gradle有关:
android {
compileSdkVersion 21
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.example.fran.dibcel"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.googlecode.json-simple:json-simple:1.1.1'}
【问题讨论】:
-
在创建套接字时遇到异常了吗?
-
您遇到的错误是什么?
-
sO = new Socket();。请删除该行。它没有任何作用。并且令人困惑。 -
我没有得到任何异常我不知道这可能是什么问题
-
“不再有效”不是问题描述。
new Socket()行不仅令人困惑,而且是资源泄漏,因为Socket永远不会关闭。不要编写无意义的代码。
标签: android sockets gradle server client