Java_socket程序学习02-一个客户端对一个服务器-客户端键盘输入

//客户端可以键盘输入信息,然后输出到服务器点,如果输入的信息为bb,则推出服务器和客户端

服务器端程序。再myecplise中执行的。

package tcp;



import java.net.ServerSocket; 
import java.net.Socket;
import java.io.IOException;
import java.io.*;


public class ServerCode {

public static int portNO = 3336; 

public static void main(String[] args)throws IOException{

ServerSocket s = new ServerSocket(portNO);
System.out.println("The Server is start"+s);

                Socket socket = s.accept();

         

                try{

     System.out.println("Accept the Client: " + socket);

    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    //PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); 
    PrintStream out=new PrintStream(socket.getOutputStream());

    while(true){
String str = in.readLine();
if(str.equals("bb")){
break;
}  
//服务器端显示信息
System.out.println("Client's info:"+str);
//out.println向客户端打印信息
//out.println(str);         
     }
             }finally{
        System.out.println("close the Server socket and the io");
        socket.close();
        s.close();
             }
      } //main

}//ServerCode

这里与Java_socket程序学习01的区别在于把 //out.println(str) 屏蔽了,即不要把信息再给客户端发送。


客户端程序,是在cmd下执行的

//package tcp;
import java.net.*;
import java.io.*;


public class ClientCode01 {


/**
* @param args
*/
static String name = "ly";
static int portNo=3336;
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
/*
* Socket类的构造方法有多种,以下列举出两个来
* 构造方法1
* Socket(InetAddress address, int port) 
         * 此构造方法第一个参数需要是InetAddress类的对象
         * 构造方法2
         * Socket(String host, int port)
*/
InetAddress addr = InetAddress.getByName("localhost");
Socket socket = new Socket(addr,portNo);


System.out.println("socket = " + socket);
//这里注释掉了socket输入流,就是不再接受服务器端发过来的输入流
//BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//这里实例化了键盘的输入流,
BufferedReader ins = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); 

out.println("My name isxxxxxxxx "+name);


//String str = in.readLine();
while(true){

//读取键盘的输入流信息
String str1 = ins.readLine(); 

//System.out.println(str1);

//将键盘的输入流信息打印给服务器
out.println(str1);
//判断输入流信息,不是bb继续次循环,如果是“bb”推出while循环执行客户端关闭,向服务器发送“bb”,
if(str1.equals("bb")){
break;
}
                }
                System.out.println("Client will be exit");
socket.close();
out.println("bb");
}

}


此程序完成了客户端键盘输入到服务器端的显示


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值