黑马程序员---网络编程(二)

 ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------



TCP

练习代码2:建立一个文本转换服务端,客户给服务端发送文本,服务端将数据转换成大写后返回给客户端,当客户端输入over时,转换结束

//客户端:

class TCPClient{

     public static void main(String[] args){

           Socket s = new Socket("127.0.0.1",10000);

           BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

           BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(

           s.getOutputStream()));

           BufferedReader bufIn = new BufferedReader(new InputStreamReader(

           s.getInputStream()));

           String line = null;

           while((line = bufr.readLine())!=null){

              if("over".equals(line))

                 break;

              bufOut.write(line);

              bufOut.newLine();

              bufOut.flush();

           String retVal = bufIn.readLine();

                 sop("server:"+retVal);

        }

           bufr.close();

           s.close();

     }

}

//服务端:

class TCPServer{

     public static void main(String[] args){

         ServerSocket ss = new ServerSocket(10000);

         Socket s = ss.accept();

         String ip = s.getInetAddress().getHostAddress();

              sop(ip);

         BufferedReader bufIn = new BufferedReader(new InputStreamReader(

         s.getInputStream()));

         BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(

         s.getOutputStream()));

 

      while((line = bufIn.readLine())!=null){

            bufOut.write(line.toUpperCase());

            bufOut.newLine();

            bufOut.flush();

  }

            s.close();

            ss.close();

      }

}

练习代码3:拷贝文件

//客户端:

class TCPClient{

      public static void main(String[] args){

Socket s = new Socket("127.0.0.1",10000);

BufferedReader bufr = new BufferedReader(new FileReader("d:\\demo.txt"));

PrintWriter pw = new PrintWriter(s.getOutputStream(),true);

String line = null;

while((line = bufr.readLine())!=null){

pw.println();

}

s.shutDownOutput();

BufferedReader bufIn = new BufferedReader(new InputStreamReader(

s.getInputStream()));

String retVal = bufIn.readLine();

sop(retVal);

bufr.close();

s.close();

}

 }

//服务端:

class TCPServer{

public static void main(String[] args){

ServerSocket ss = new ServerSocket(10000);

Socket s = ss.accept();

String ip = s.getInetAddress().getHostAddress();

sop(ip);

BufferedReader bufIn = new BufferedReader(new InputStreamReader(

s.getInputStream()));

PrintWriter out = new PrintWriter(new FileWriter"copy.txt",true);

String line =null;

while((line = bufIn.readLine())!=null){

out.write(line);

}

PrintWriter pw = new PrintWriter(s.getOutputStream(),true);

pw.println("上传成功");

out.close();

s.close();

ss.close();

}

}

练习代码4:上传图片

//客户端:

class TCPClient{

public static void main(String[] args){

Socket s = new Socket("127.0.0.1",10000);

FileInputStream fis = new FileInputStream("d:\\图片1.png");

OutputStream out = s.getOutputStream();

byte[] buf = new byte[1024];

int len = 0;

while((len = bufr.read())!=-1){

out.write(buf,0,len);

}

s.shutDownOutput();

 

InputStream in = s.getInputStream();

byte[] bufIn = new byte[1024];

int lenIn = in.read(bufIn);

sop(new String(bufIn,0,lenIn);

fis.close();

s.close();

}

}

//服务端:

class TCPServer{

public static void main(String[] args){

ServerSocket ss = new ServerSocket(10000);

Socket s = ss.accept();

 

String ip = s.getInetAddress().getHostAddress();

sop(ip);

FileOutputStream fos = new FileOutputStream("d:\\copy.png");

InputStream in = s.getInputStream();

byte[] bufIn = new byte[1024];

int lenIn = 0;

while((lenIn=bufIn.read())!=-1){

fos.write(bufIn,0,lenIn)

}

 

OutputStream outIn = s.getOutputStream();

outIn.write("上传成功".getBytes());

fos.close();

s.close();

ss.close();

}

}

练习代码5:客户端并发登陆

客户端通过键盘录入用户名,服务端对这个用户名进行校验

如果用户存在,在服务端现实xxx已登录,并在客户端现实欢迎xxx

如果用户不存在,在服务端现实xxx正在尝试登陆,并在客户端现实xxx用户不存在

最多登陆三次。

//校验端:

class User implements Runnable{

private Socket s;

public User(){}

public User(Socket s){

this.s=s;

}

public void run(){

try{

BufferedReader bufrIn = new BufferedReader(

  new InputStream(s.getInputStream()))

String name = bufrIn.readLine();

if(name==null){

sop("用户名为空");

break;

}

BufferedReader bufr = new BufferedReader(

new FileReader("user.txt"));

PrintWriter pw = new PrintWriter(s.getOutputStream(),true);

String line = null;

boolean flag = false;

while((line = bufr.reanLine())!=null){

if(line.equals(name)){

flag = true;

break;

}

if(flag){

sop(name+"已登陆");

pw.println("欢迎"+name);

break;

}

else{

sop(name+"正尝试登陆");

pw.println(name+"用户不存在");

}

 

}

s.close();

}

catch(Exception e){

throw new RuntimeException("用户校验失败");

}

}

}

//客户端:

class LoginClient{

public static void main(String[] args){

Socket s = new Socket("127.0.0.1",10000);

BufferedReader bufr = new BufferedReader(

new InputStreamReader(System.in)));

PrintWriter out = new PrintWriter(s.getOutputStream(),true);

BufferedReader bufIn = new BufferedReader(

 new InputStreamReader(s.getInputStream()));

for(int i=0;i<3;i++){

String line = bufr.readLine();

if(line == null){

sop("用户名不能为空!");

break;

}

out.write(line);

String retVal = bufIn.readLine();

sop(retVal);

}

bufr.close();

s.close();

}

}

//服务端:

class LoginServer{

public static void main(String[] args){

ServerSocket ss = new ServerSocket(10000);

while(true){

Socket s = ss.accept();

new Thread(new User()).start();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值