socket通信は簡単に実現できます.
7407 ワード
今日は暇で用事がなくて、socket通信を書いて、通信の方面はやはりとても面白いと感じて、しかしAndroidはすべて第三者のフレームワークで取って代わったので、今日1つのdemoを書いて、面白い友达は拡張することができて、2台のコンピュータを実現してチャットするのは大丈夫です.
サービス側
クライアント
簡単に実現しただけで、コードパッケージはあまりよくなく、個人的な感覚機能が拡張できるのがもっと面白いです.
サービス側
package com.cyanbird.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Service {
// , 。 , 。
public static void main(String[] args) {
openService();
}
public static void openService() {
try {
ServerSocket serverSocket = new ServerSocket(8585, 10);
// socket,accept
System.out.println(" , ");
Socket socket = serverSocket.accept();
System.out.println("------");
InputStream inputStream = socket.getInputStream();
InputStreamReader iReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(iReader);
String temp = null;
String info = "";
while ((temp = bufferedReader.readLine()) != null) {
info += temp;
}
System.out.println(" :" + info + "------"
+ socket.getInetAddress() + "------" + socket.getPort());
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.print(" ");
pw.flush();
socket.shutdownOutput();
pw.close();
os.close();
bufferedReader.close();
inputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
}
クライアント
package com.cyanbird.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
openClient();
}
public static void openClient() {
try {
Socket socket = new Socket("192.168.31.216", 8585);
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.print(" ");
pw.flush();
socket.shutdownOutput();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String temp = null;
String info = "";
while ((temp = br.readLine()) != null) {
info += temp;
}
System.out.println(" :" + info);
br.close();
isr.close();
is.close();
pw.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
}
簡単に実現しただけで、コードパッケージはあまりよくなく、個人的な感覚機能が拡張できるのがもっと面白いです.