Cryptocurrency investment fraud is on the rise, according to the FBI.
James Martin/CNET
Online scams are lucrative for criminals, and AI is making it easier to swindle US targets, according to the FBI’s latest Internet Crime Report. Each year, the FBI publishes statistics from its Internet Crime Complaint Center, and this year’s report broke the $20 billion barrier in losses, with more than 1 million complaints reported to the agency. In 2024, it recorded $16.6 billion in losses.
The complaint center tracks internet crimes across more than two dozen categories, including identity theft and ransomware. In 2025, phishing/spoofing were the top crime types, with 191,561 complaints. Next on the list was extortion, with 89,129 complaints.
The numbers are based on complaints filed with the FBI, though many crimes go unreported. An FBI representative told CNET by email that the agency “cannot speculate on how many instances of cyber-enabled crime victimization are unreported each year.”
According to the report, the over-60 demographic remains most vulnerable to online scams, with “elder fraud” accounting for 201,266 complaints and $7.75 billion in reported losses. That’s an increase of 37% from 2024, with an average loss of $38,500. Of those, 12,444 people lost more than $100,000 due to scams.
“These scams are largely perpetrated by organized criminal enterprises based in Southeast Asia using victims of human trafficking as forced labor to run the scam operations,” the report reads.
The rise of higher-quality AI systems is making it harder to spot scams, with 22,364 AI-related complaints costing people $893 million last year. That includes confidence/romance scams, where fake profiles and scripts that sound like believable human speech entice, and grandparent scams, or “distress” scams, where AI voice cloning mimics a relative in danger.
The National Consumer League also published a recent report showing that AI has more than doubled the average financial losses year over year.
Combating cybercrime
In addition to breaking down the different types of cyber scams, the 66-page report highlights the FBI’s IC3 Recovery Asset Team’s work, including a “financial fraud kill chain.” Out of 3,900 incidents reported, the team froze $679 million in assets out of $1.2 billion in attempted theft, a 58% success rate.
The FBI also formed a new Scam Center Strike Force to tackle cryptocurrency investment fraud by identifying the compounds and leaders in Southeast Asia behind the scams.
Other programs include Operation Level Up, which uncovers scams and notifies victims (78% of whom were unaware of the scam) and has a specific emphasis on dealing with call center fraud, ransomware and data breaches.
Socket programming is a method where two nodes on a network can connect and communicate with one another. While another socket reaches out to the first socket to establish a connection, one socket (or node) listens on a specific port at an IP address. While the customer reaches out for the server, the server creates the listener socket. For connection-oriented socket programming, the classes Socket and Server Socket are utilized.
Programming using Java Sockets can be either connection-oriented or connection-less. For connection-oriented socket programming, While the customer reaches out for the server, the server creates the listener socket. For connection-oriented socket programming, the classes Socket and Server Socket are utilized. and DatagramSocket classes are used, while Socket and ServerSocket are used for connection-less socket programming.
What Is Java Socket
A Java socket is one terminal of a 2-way networked communication relationship between two programs. For the TCP layer to recognize the program that data is intended to be transferred to, a socket is tied to a port number.
A port number and an IP address make up an endpoint. An implementation of one side of a 2-way connection between the Java program and another program on the network is made possible by the class Socket, which is part of the Java platform’s package. The class resides on top of the platform-specific implementation, shielding your Java program from the specifics of every given system. Your Java programs can interact over the web in a platform-independent manner by utilizing the class rather than depending on native code.
Client-Side Programming
When using the client side, in the programming, the client initially watches for the server to launch. The requests will be sent to the server once it is operational. The client will then watch for the server’s answer. So, this is how server and client communication functions overall. Let’s now go deeper into client-side and server-side programming.
For starting with the requests from the client-side, the user needs to process the following steps:
Establish a connection :
Creating a socket connection is the initial action. The socket connection signifies that the 2 machines are aware of each other’s IP address and TCP port on the network.
The following statement will let you construct a socket:
Socket s = new s(“127.0.0.1”, 5000)
The first input in this case denotes the server’s IP address.
The TCP Port is represented by the second parameter. (A number that indicates which server-side program should be running.)
Communication :
Streams are utilized for both data input and output when communicating via a socket connection. You must shut down the connection after opening it and sending the requests.
Closing the connection : Once the message has been transmitted to the server, the socket connection will explicitly close.
Wish to make a career in the world of Java? Start with HKR’S Java Training !
Java Certification Training
Master Your Craft
Lifetime LMS & Faculty Access
24/7 online expert support
Real-world & Project Based Learning
Server-Side Programming
In essence, the server will create its object and await a request from the client. The server will reply with the response once the client will send the request. Two sockets are required in order to program the server-side application, and they are as follows:
When a client calls newSocket(), a ServerSocket that is waiting for the requests from the client is created. There is a straightforward socket for client communication. Following that, you must inform the client of the outcome.
Communication
The output is sent across the socket using the getOutputStream() function.
Closing the connection
Once everything is finished, it’s crucial to shut off the connection by shutting the socket and any active input/output streams.
You can run the server-side program first after configuring the client and server ends. After that, you must transmit the request and start client-side software. The server will reply as the client sends the request. The image below shows the same.
The client will establish a connection and enter the request as a string.
The server will reply to the request sent by the client.
You must run a Java socket program in the given manner. These programs can also be run via a command window or terminal. However, as Eclipse is very feature-rich, you can easily run both apps on a console.
Subscribe to our YouTube channel to get new updates..!
Testing The Applications
The testing of applications is done using the IntelliJ application or any other IDE.
Put the two programs together.
Start the client application after starting the server software.
Write a message in the client window, and the server window will simultaneously receive and display them.
Type BYE to leave.
This can be done using a command prompt also:
Create a new folder called project (this is the name of your package).
Place the project folder’s Server.java and Client.java files.
Go to the root path on the command prompt after opening it.
Run java project.Server first, then javac projectServer.java.
Use the same process to run the client and server programs.
Messages can then be typed in the window of the client.
The application can fail when a port has already been in use. Modify port no to a special number to resolve this problem.
Acquire Jenkins certification by enrolling in the HKR Jenkins Training program in Hyderabad!
Java Certification Training
Weekday / Weekend Batches
Conclusion
In this article, we have talked about socket and socket programming. Socket programming is a method where two nodes on a network can connect and communicate with one another. While another socket reaches out to the first socket to establish a connection, one socket (or node) listens on a specific port at an IP address. We have also discussed client-side and server-side along with testing the applications.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.