socket-a host-local, application-created, OS-controlled interface (a “door”) into which application process can both send and receive messages to/from another application process.
process- controlled by application developer
TCP with buffers, variables- controlled by operating system.
when contacted by client, server TCP creates new socket for server process to communicate with client allows server to talk with multiple clients source port numbers used to distinguish clients.
code for client in TCP(java)
import java.io.*;
import java.net.*; // defines Socket() and Server Socket() classes
class TCPClient {
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); //creat input stream
Socket clientSocket = new Socket("hostname", 6789);//create clientSocket objext of type Socket, connect to server (server name),(server port)
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); //creat output stream attached to socket
BufferedReader inFromServer =new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); //creat input stream attached to socket
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');//send line to server
modifiedSentence = inFromServer.readLine();//read line from server
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close(); // close socket clean up work by yourself?
}
}
code for server in TCP(java)
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789); //create welcoming socket at port 6789
while(true) {
Socket connectionSocket = welcomeSocket.accept(); //wait, on welcoming socket accept()method for client contact creat, new socket on return
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); //create input stream, attached to socket
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); //create output stream, attached to socket
clientSentence = inFromClient.readLine();//read in line from socket
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence); //write out line to socket
}
}
}
//end of while loop, loop back and wait for another client connection.
http://zhidao.baidu.com/question/184777281.html?fr=qrl&cid=93&index=1 about BufferedReader