Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
import java.net.*; import java.io.*; import java.util.*; public class Server { final static int server_port = 9000; static ArrayList
activeClients = new ArrayList<>(); static int numOfClients = 0; public static void main(String[] args) throws Exception{ ServerSocket serverSocket = new ServerSocket(server_port); Socket s = null; int dali_treba_da_se_vnese_pass = -1; while(true) { s = serverSocket.accept(); // primi go socketot ispraten od clientot System.out.println("New user is trying to connect..."); DataInputStream input = new DataInputStream(s.getInputStream()); DataOutputStream output = new DataOutputStream(s.getOutputStream()); String username = input.readUTF(); StringTokenizer stringTokenizer = new StringTokenizer(username, ":"); String s1 = stringTokenizer.nextToken(); String s2 = stringTokenizer.nextToken(); boolean ok = false; if(s1.equals("name") && s2.length() > 0) { ok = true; } if(!ok) { output.writeUTF("Login failed!"); output.flush(); continue; } String password = input.readUTF(); System.out.println(password); StringTokenizer st = new StringTokenizer(password, ":"); String p1 = st.nextToken(); p1 = st.nextToken(); boolean upper_case = false; boolean number = false; boolean specialChar = false; for(int i = 0; i < p1.length(); i++) { char c = p1.charAt(i); if(c >= 'A' && c <= 'Z') { upper_case = true; } if(c >= '1' && c <= '9') { number = true; } if(c >= '!' && c <= '/') { specialChar = true; } } if(upper_case && number && specialChar && p1.length() >= 8) { } else { output.writeUTF("Login failed!"); output.flush(); continue; } System.out.println("User: " + s2 + " is connected!"); ClientThread cl = new ClientThread(s, s2, input, output); activeClients.add(cl); cl.start(); numOfClients++; } } } class ClientThread extends Thread { private String username; private DataInputStream input; private DataOutputStream output; Socket socket; boolean logged_in = false; public ClientThread(Socket s, String usname, DataInputStream dis, DataOutputStream dos) { socket = s; username = usname; input = dis; output = dos; logged_in = true; } @Override public void run() { int pass = -1; while(true) { try { if(socket.isConnected()) { String recieved = input.readUTF(); System.out.println(recieved); StringTokenizer stringTokenizer = new StringTokenizer(recieved, ":"); String to_whom = stringTokenizer.nextToken(); String message = stringTokenizer.nextToken(); boolean ok = false; for(ClientThread client : Server.activeClients) { if(client.username.equals(to_whom) && client.logged_in == true) { client.output.writeUTF("User " + username + " says: " + message); client.output.flush(); ok = true; break; } } if(!ok) { output.writeUTF("User not found or logged in!"); output.flush(); } } else { break; } } catch (Exception e) { e.printStackTrace(); } } try{ input.close(); output.close(); } catch (IOException ex) { ex.printStackTrace(); } } } // name:fdsjfksdf // password:
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)