Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends AppCompatActivity {
- Button im, ex;
- String myIp;
- ServerSocket server=null;
- Socket socket = null;
- WifiManager wifi;
- Server s=null;
- mySocket ms;
- String [] one = {"Привет, ", "Здравствуй, "};
- String [] two = {"я ", "это ", "на связи "};
- String [] three = {"сокет.", "клиент."};
- Random random;
- String msg;
- int who;
- Socket client=null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- ex=findViewById(R.id.ex);
- im=findViewById(R.id.im);
- random=new Random();
- ex.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //startActivity(new Intent(MainActivity.this, ExportActivity.class));
- WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
- Log.d("Tag", getIPAddress() + "");
- who=random.nextInt(2);
- msg = one[random.nextInt(2)] + two[random.nextInt(3)] + three[who];
- ms = new mySocket();
- ms.start();
- new Timer().schedule(new TimerTask() {
- @Override
- public void run() {
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- if (ms.isAlive()) {
- ex.setEnabled(false);
- } else {
- ex.setEnabled(true);
- }
- }
- });
- }
- }, 0, 10);
- }
- });
- im.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //startActivity(new Intent(MainActivity.this, ImportActivity.class))
- s=new Server();
- s.start();
- new Timer().schedule(new TimerTask() {
- @Override
- public void run() {
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- if(s.isAlive()){
- im.setEnabled(false);
- }
- else {
- im.setEnabled(true);
- }
- }
- });
- }
- },0, 10);
- }
- });
- }
- public InetAddress getWifiApIpAddress() {
- int i=0;
- try {
- for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en
- .hasMoreElements();) {
- NetworkInterface intf = en.nextElement();
- if (intf.getName().contains("wlan")) {
- for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr
- .hasMoreElements();) {
- InetAddress inetAddress = enumIpAddr.nextElement();
- if (!inetAddress.isLoopbackAddress() &&
- (inetAddress.getAddress().length == 4)) {
- Log.d("", inetAddress.getHostAddress());
- return inetAddress;
- }
- else{
- Log.d("", inetAddress.getHostAddress());
- }
- }
- }
- }
- } catch (SocketException ex) {
- Log.e("", ex.toString());
- }
- return null;
- }
- public String getIPAddress() {
- wifi=(WifiManager)getApplicationContext().getSystemService(WIFI_SERVICE);
- int ip = wifi.getDhcpInfo().gateway;
- String ipString = String.format("%d.%d.%d.%d", (ip & 0xff),
- (ip >> 8 & 0xff), (ip >> 16 & 0xff), (ip >> 24 & 0xff));
- return ipString;
- }
- public class Server extends Thread {
- // Конструктор
- Server() {
- // Создаём новый поток
- super("Второй поток");
- Log.i("", "Создан второй поток " + this);
- }
- public void run() {
- String myIp = getWifiApIpAddress().getHostName();
- Log.i("TAG", myIp+"");
- try {
- if(server==null) {
- server = new ServerSocket(1234, 0, getWifiApIpAddress());
- }
- client = server.accept();
- InputStream sin = client.getInputStream();
- OutputStream sout = client.getOutputStream();
- DataInputStream in = new DataInputStream(sin);
- DataOutputStream out = new DataOutputStream(sout);
- Log.e("Tag", "Сокет подключился");
- String line = null;
- line = in.readUTF(); // ожидаем пока клиент пришлет строку текста.
- System.out.println("Сообщение от клиента: " + "'" + line + "'");
- System.out.println("Отвечаю на сообщение...");
- out.writeUTF("Привет, " + three[who]); // отсылаем клиенту обратно ту самую строку текста.
- out.flush(); // заставляем поток закончить передачу данных.
- System.out.println("Ожидание...");
- System.out.println();
- } catch (SocketException e) {
- Log.e("Tag1", e.getCause()+", " +e);
- } catch (IOException e) {
- Log.e("Tag2", e.getCause()+", " +e);
- e.printStackTrace();
- }
- }
- }
- public class mySocket extends Thread {
- // Конструктор
- mySocket() {
- // Создаём новый поток
- super("Поток2");
- Log.i("TAG", "Поток2" + this);
- }
- public void run() {
- try {
- socket = new Socket(getIPAddress(), 1234);
- InputStream sin = socket.getInputStream();
- OutputStream sout = socket.getOutputStream();
- DataInputStream in = new DataInputStream(sin);
- DataOutputStream out = new DataOutputStream(sout);
- System.out.println("Отправка сообщения серверу...");
- out.writeUTF(msg); // отсылаем введенную строку текста серверу.
- out.flush(); // заставляем поток закончить передачу данных.
- msg = in.readUTF(); // ждем пока сервер отошлет строку текста.
- System.out.println("Ответ сервера: " + msg);
- System.out.println("Можете отправить сообщение снова");
- } catch (IOException e) {
- Log.e("Tag", e.getCause()+", " +e);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement