2.7 Socket programming with TCP

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值