Modify Or Read Http Message Before Sending To Server Within Client
Feb 25, 2014
I am trying to check the integrity in a Bank Transaction that the message sent to the server has not been modified by any malware in the client system. For this I am trying to read the message sent to the server at the client boundary so as that it enters the network as customer with customer intended values. So, firstly I need to check where to I need intercept the message within client boundary. Secondly, Can I intercept the message and read its contents using Java?
I want to check what my Online Banking Server( Leta Say Bank of America) receives if I ask to transfer amount $100 to Account A . I assume that there is a malware in client system that changes recipient to B,$10000. My aplicaion which I intend to design, shoudl inform the user that the integrity of the message is compromised and should give the option to the user to abort it. plan to track what message is being sent from client to server. This I want to achieve by reading the message from client at the last point before it leaves the client and enter the network.
I've just recently started playing around with network programming in Java, and I've come up with a simplistic server than can handle multiple clients and return the IP and port each one is connected to (or I'm under the impression that is so). What I've been requested to do as an exercise by one of the programming teachers at my high school (I'm not in a class, this is my own time) is send a message from one client to the other through the ServerSocket so that it may "watch" everything going on. I'm not sure how to go about this at all.
EDIT : now it never seems to go the the else or else if statements...
That is now the main problem. It never, ever, goes past the first if statement, no matter what it is.
EDIT : Okay, I haven't changed a line of code but suddenly not a single if statement is working. They just stopped. The client simply hangs and I can't type anything.
Server
public class Server implements Runnable { Socket clientSocket; Server(Socket clientSocket) { this.clientSocket = clientSocket; } public static void main(String args[]) throws Exception { ServerSocket ssock = new ServerSocket(3480); System.out.println("Listening on port 3480");
I have two programs that I'll post below, one is a Server and the other is a Client. The ChatServer runs once and many clients can run ChatClient from separate computers and talk together in their GUI's. The the client program comes with two buttons, one that's simulates the sending of a message to a single user ; "Send Message To User", and one that just generally sends a message ; "Send Message To All". Although now the Clients on the server seem to be able to selectively send messages to an individual by giving the recipient name, all the clients can see that message, which is not exact what I am aiming for. What I am going for is having the "Send Message To User" button click to send a message to the named user without all other users seeing the message.
Now I have tried thing like having various input output streams and trying to connect those, but no luck. Tried fiddling with having the names arraylist directing the messages to one client versus all but that did not work out either. How I what I would need to do to go about doing this?
I am creating a server that stores application updates. When the client connects the server send the update. The server is sending the file but the file is not complete, i.e, if the file is 317kb,its send 117kb. Below is the code I am using :
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class TestFileServer {
I have a problem on how to make my client to send the object to a server.
So I have one interface called "RMIInterface" and client "RMIClient" and server "RMIServer":
RMIInterface interface RMIInterface { public String getMessage(String text) throws RemoteException; } RMIClient public class RMIClient {
[code]....
With this program I can connect to a Server with a Client, and print in Client console a message.But, how can I send message from a client to a server, and print that message in server console output?
make the simpliest example with sending a message to a server, edit inteface header code to public interface RMIInterface extends Remote, I forgot to add.
I have to write a client and server class for a UDP protocol sending integer numbers by UDP packets. So far i have this;
Client Code:
import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
[Code] ....
But i now need to change this so that:
The client;
1. Reads an integer from keyboard input and stores its value in a UDP packet. // byte[] send = ByteBuffer.allocate(4).putInt(num).array(); ???
2. Sends the UDP packet to the server, on port number 1999;
3. Listens for UDP packets from the server (until it receives a packet with a non-positive number; see step (b) below). While listening:
(a) Once it receives a UDP packet from the server, it subtracts 2 from the integer value num contained in it. // int num = ByteBuffer.wrap(receive).getInt(); ??? (b) Checks the integer value num: if the value is greater than 0 (num>0) then the client stores it in a new UDP packet and sends the packet to the server; otherwise (num<=0) the client terminates.
The Server;
1. Listens on port 1999;
2. For each UDP packet it receives from a client: (a) extracts the integer value n contained in it; (b) decreases the value of n by 2; (c) sends back to the client a UDP packet containing the new value of n.
I want to send a message to a specific client in a server. This is my code and what I tried(I have only given you 3 classes in which I believe I have the problem).
TextClient:
import java.io.*; import java.net.*; import java.util.ArrayList; import java.util.Scanner; import java.util.concurrent.TimeUnit; public class TextClient { public TextClient() {
Me and my brother decided to make a relatively simple client/server program where clients get into a simple chat lobby and can invite others to play small games(like pong). The basic server code has been written, and we have made a special client that is used for debugging.
We use a self-defined protocol of Strings where a message looks like "4-|user,pass". The number before the delimiter "-|" is the operation code, that tells the server what kind of message this client sends. Based on that number, the server dispatches the message to the appropriate handler method. 4 is authentication for example, and the handler looks the user and pass up in a file and if found, returns true, otherwise, false. Then the server responds to the clinet with 2-|"any message" where the client will recognize opcode 2 as a "authentication accepted" and proceed with the next part of client code. In a similar way, we plan to write all message types(both in the game, in the lobby and in a game setup room).
While testing we ran into a problem where the BufferedReader .readLine() does not seem to be a blocking call like it should be, so the client keeps spamming 'null' in the output field that we made to see the server response to the message we send. When we try to debug the server code and set breakpoints at the suspicious locations, it strangely skips both while(true) loops without activating either breakpoint and executes the finally{} code, even though the client did not close the connection and the second while loop was never entered. The first while loop IS entered though, because the test client gets a "0" on its output, which is the server message indicating "please authenticate yourself".
We decided to use messages in a string format and decode it at both sides as it seemed easier than transmitting java objects and making sure they are of the same type, also for reducing overhead as much of possible.URL....
I want to send a message to a specific client in a server. This is my code and what I tried(I have only given you 3 classes in which I believe I have the problem).
TextClient: import java.io.*; import java.net.*; import java.util.ArrayList; import java.util.Scanner; import java.util.concurrent.TimeUnit; public class TextClient { public TextClient() {
my project is all about downloading files(text files, music files, etc) from a LINUX server using UI build in java, my mentor told me to use HTTP Client (Java apache), but how to start this.
Here's a sample scenario:
ScreenHunter_1.jpg
Consider the directory structure above.
First, how to connect with this LINUX server using JAVA.
I am trying to write to an http server, but nothing happens. I can read from the file, I just cannot write to it and no errors are thrown. I do not know how to proceed.
Specifically, I have a text file on my server, and I can read from it (the text file already has content), but I cannot write to it. And, no exceptions are thrown.
url = new URL("http://kajl-ig.com/txt.txt"); urlConn = url.openConnection(); urlConn.setDoInput(true); urlConn.setDoOutput(true); urlConn.setUseCaches(false); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(urlConn.getOutputStream())); String s = "TEST Successfull!";
[code].....
The second code, I got from some random website, and I was desperate so I tried it. I am not sure what the
urlConn.setRequestProperty (String, String);
method does, so I removed it and it reads fine it just cannot write.
Now, I would like to properly stop the server. For that, I can do server.stop(); . However, this does not work since the object server is not public, it is contained within the public pc_proxy class.How do I do that?
I'm making a class in Android that takes a photo, list a photos in Listview, and then sends them all to server. I'm stuck on listing them. How to send them all to server.
I would like to know the details about how a server handles a multipart request. I know that a webserver comprises of a HTTP adapter(which is responsible for receiving http requests and sending http responses) and a container(which is responsible for handling dynamic requests).
So, when a client sends a request, the HTTP adapter receives it. Then transfers the request to the container if the http adapter cannot handle it(jsps, servlets for example).
Suppose, a client sends a multipart request which has an avi file of size upto 100mb. For example, lets assume that the client takes 5 minutes to upload the file.
Lets also assume that my application is only interested in flv files. Is there any way to stop/terminate the multipart request before the file is transferred to the server? So that the client's time will not be wasted?
I think that the HTTP adapter will transfer the request to the container only after receiving the entire request, i.e. the servlet will be called only after the file is transferred to the server from client. Is it right?
If its right then there is no easy way to terminate the multipart request unless the entire file is transferred to the server. Is this right?
Is there any kind of way to generate HTTP request within a servlet, dispatch it to the server and get back the answer delivered to the servlet? Or are the servlets meant only to respond to passed requests, not generate them?
(I asked a similar question here: [Code] ..... but no luck)
I am a first-timer using J2EE and here on coderanch.com and wanted to make a Simple Email-like System which a Registered User can Send Message/Email to another Registered User. how to do it. I have already my register/login process done but I'm stuck on how to make the Email. And I have an sample Bootstrap for my UserInterface which I want to use.
I have been trying to implement custom request method in HTTP header while posting my data to the server URL. My application specific URL accepts -X parameter and -d for the data and it is mandatory for that url. Basically I am trying to dump JSON data into my influx DB using CURL command which is working fine from the shell. But the issue is, if I am implementing the same in java with proper approach, it is not supported or working. My CURL command is :
curl -X POST -d '<my_json_data>' '<my_url>'
How can I implement the same in java using HttpUrlConnection or other available approach?
if i send messages as in the code below, is there a way to read only one message, if the client doesn't know how long it is (or if he only knows the maximum length)?in the documentation it says, that the method read(byte[]) reads until no data ist available or end of file is decteted. What does the latter mean? Can i extend the array that i sent by a byte that signals the end? Here is my Code:
Server
public class Server implements Runnable{ ServerSocket server; HashMap<Short,Socket> clients; public Server(){ clients = new HashMap<>();
[code]....
Both are startet in seperate threads. At the moment the first output of the client is "12 bytes read", and then continously "-1 bytes read"(because the server closes).
I am attempting to test a TCP Client and Server for an assignment I am doing in class. The goal here is to "test your client and Server applications by transferring (i) a file having 10,000+ lines (see supplied big-file1.txt having 12000+ lines), (ii) a file having 20,000+ lines (you may create one of your own from big-file1.txt, or obtain a large size file from the Google website at [URL] ...). Then, compute and display the total transfer time of the files at both of the sides separately (your choice in millisecond/second)."
I have created the TCPClient and TCPServer java classes, ran the server first and then the client, and using mathematical formulas to calculate the transfer time. Trouble is, I'm having trouble testing the client and server in the file area and not the area where I had to input a line, let the server print it, and then have the client eliminate the articles from the line. I need testing the file. Here is my code so far:
TCPClient:
package tcpclient; import java.io.*; import java.net.*; public class TCPClient { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub String sentence;
[code] ....
How to fix the code so that the time in seconds does not output as 60 for both files and that the files go through the exchange?
I have a program using Pipe line to exchange the infomation in the Client-Server model. Can I separate out main function and then put into Server main and Client main?
//PipeEchoServer public class PipedEchoServer extends Thread { PipedInputStream readPipe; PipedOutputStream writePipe; PipedEchoServer(PipedInputStream readPipe, PipedOutputStream writePipe){ this.readPipe = readPipe;
I have to develop a code in parallel which is implemented in sequential yet. How to add the server client relation in the program so that work can be divided into multiple clients.
I want to ask that, when a server listen to A port and it accepts a request from a client then the server accepts the request using accept method,but how does the server get the info about the client like wat is the port no and ip address of the client,I read a answer regarding this that Server never gets the port no of client only the ip address and it connects to client using a connection stream but as far I know from networking, a device must have the ip address and port no of the device it wants to connect to.
So we have a Client and Server. Client opens a socket to Server, server initiates new Thread to handle the communication with client. Is there a way to be singnalled when there is input on socket, so I don't have to use infinite while loop solution?