
android与我的电脑进行socket通信时出现异常java.net.SocketException: Connection reset 30
写了个服务器和客户端利用socket进行通信的例子,在我的电脑上服务器和客户端能够正常运行,但是现在我想用我的android手机作为客户端与我的电脑进行通信时就报了这个错...
写了个服务器和客户端利用socket进行通信的例子,在我的电脑上服务器和客户端能够正常运行,但是现在我想用我的android手机作为客户端与我的电脑进行通信时就报了这个错误。求具体解决方法。
服务器代码:
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(8888);
Socket socket = ss.accept(); //
BufferedReader cin = new BufferedReader (new
InputStreamReader( socket.getInputStream()));
PrintWriter cout = new PrintWriter (
socket.getOutputStream() );
BufferedReader input = new BufferedReader (
new InputStreamReader( System.in) ) ;
String answer ,ask ;
ask = cin.readLine();
cout.println("hello");
System.out.println("client ask :" + ask );
cout.flush();
while (!ask.equals("bye")) {
System.out.println("client ask :" + ask );
answer = input.readLine() ;
cout.println(answer);
cout.flush();
ask = cin.readLine()
; }
cin.close();
cout.close();
socket.close();
ss.close() ;
} catch (Exception e) {
e.printStackTrace();
}
}
android网络操作线程代码:
public void run() {
try {
Socket clientSoc=new Socket("192.168.1.126",8888);
BufferedReader sin = new BufferedReader ( new InputStreamReader( clientSoc.getInputStream()));
PrintWriter sout = new PrintWriter ( clientSoc.getOutputStream());
sout.println("hello"); //向服务器发送请求
sout.flush();
while (!askString.equals("end")) {
sout.println(askString); //向服务器发送请求
sout.flush(); //清空缓存
Message msg=workHandler.obtainMessage();
msg.obj="hello";
workHandler.sendMessage(msg);
}
sin.close();
sout.close();
clientSoc.close();
这个错误我已上网找过原因了,说是socket被关闭等等原因。 展开
服务器代码:
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(8888);
Socket socket = ss.accept(); //
BufferedReader cin = new BufferedReader (new
InputStreamReader( socket.getInputStream()));
PrintWriter cout = new PrintWriter (
socket.getOutputStream() );
BufferedReader input = new BufferedReader (
new InputStreamReader( System.in) ) ;
String answer ,ask ;
ask = cin.readLine();
cout.println("hello");
System.out.println("client ask :" + ask );
cout.flush();
while (!ask.equals("bye")) {
System.out.println("client ask :" + ask );
answer = input.readLine() ;
cout.println(answer);
cout.flush();
ask = cin.readLine()
; }
cin.close();
cout.close();
socket.close();
ss.close() ;
} catch (Exception e) {
e.printStackTrace();
}
}
android网络操作线程代码:
public void run() {
try {
Socket clientSoc=new Socket("192.168.1.126",8888);
BufferedReader sin = new BufferedReader ( new InputStreamReader( clientSoc.getInputStream()));
PrintWriter sout = new PrintWriter ( clientSoc.getOutputStream());
sout.println("hello"); //向服务器发送请求
sout.flush();
while (!askString.equals("end")) {
sout.println(askString); //向服务器发送请求
sout.flush(); //清空缓存
Message msg=workHandler.obtainMessage();
msg.obj="hello";
workHandler.sendMessage(msg);
}
sin.close();
sout.close();
clientSoc.close();
这个错误我已上网找过原因了,说是socket被关闭等等原因。 展开
展开全部
这是因为你的8888端口被使用了。
或者说被之前的服务器占用没有关闭。
你可以修改一下8889试试
或者说被之前的服务器占用没有关闭。
你可以修改一下8889试试
追问
应该不是端口问题,我改了之后还是不行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询