夜光 带你走进 Java基础编程实战(三十二 tcp/udp)

夜光序言:

 

在那些烂醉如泥的夜里,我唯一想到的人是你

 

 

 

 

 

 

正文:

 

第一个类:客户端

import java.net.*;
import java.io.*;

public class TcpClient {
    public static void main(String[] args) {
        try {
            Socket s = new Socket(InetAddress.getByName("127.0.0.1"), 8001); 
            //夜光    需要服务端先开启
            
            //夜光:同一个通道,服务端的输出流就是客户端的输入流;服务端的输入流就是客户端的输出流
            InputStream ips = s.getInputStream();    //夜光 开启通道的输入流
            BufferedReader brNet = new BufferedReader(new InputStreamReader(ips));
            
            OutputStream ops = s.getOutputStream();  //夜光 开启通道的输出流
            DataOutputStream dos = new DataOutputStream(ops);            

            BufferedReader brKey = new BufferedReader(new InputStreamReader(System.in));
            while (true) 
            {
                String strWord = brKey.readLine();
                if (strWord.equalsIgnoreCase("quit"))
                {
                    break;
                }
                else
                {
                    System.out.println("I want to send: " + strWord);
                    dos.writeBytes(strWord + System.getProperty("line.separator"));
                    
                    System.out.println("Server said: " + brNet.readLine());
                }
                
            }
            
            dos.close();
            brNet.close();
            brKey.close();
            s.close();

   }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}
      

第二个类:服务端

import java.net.*;
import java.io.*;
public class TcpServer
// 夜光  
{
    public static void main(String [] args) 
    {
        try
        {
            ServerSocket ss=new ServerSocket(8001); //驻守在8001端口
            Socket s=ss.accept();                   //阻塞,等到有客户端连接上来
            System.out.println("welcome to the java world");
            InputStream ips=s.getInputStream();     //有人连上来,打开输入流
            OutputStream ops=s.getOutputStream();   //打开输出流
            //同一个通道,服务端的输出流就是客户端的输入流;服务端的输入流就是客户端的输出流
            
            ops.write("Genius:Hello, Client!".getBytes());  //输出一句话给客户端
            
            
            BufferedReader br = new BufferedReader(new InputStreamReader(ips));
            //从客户端读取一句话            
            System.out.println("Client said: " + br.readLine());
            
            
            ips.close();          
            ops.close();
            s.close();
            ss.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}
      

 

 

运行结果:

先运行服务端
,再运行客户端~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值