Socket编程的基本实现

网络编程的基本模型就是客户机和服务器模型,简单的说就是两个进程之间的相互通信,在通信过程中,服务器端要提供一个固定的端口,供其它客户机访问,通信可以是0-65535之间,但由于TCP/IP协议占了1024个,所以我们可用的只能是1024个之后的端口。

在网络编程中和I/O操作是息息相关的,网络的底层操作是连续的数据流,还是要利用I/O操作来实现,I/O操作有字节流和字符流,还提供了一个缓冲来用于数据的读写。输入流InputStreamReader,输出流OutputStream,一个缓冲是BufferReader。

首先在服务器端,我们要创建一个 服务器端socket,定义一个端口:

               ServerSocket  server = new ServerSocket(8888);

其次要创建一个接收客户端的socket.

               Socketclient  = server.accept();

再者要创建一个缓冲来接收客户端传来的数据:

               BufferedReader br = new BufferedReader(newInputStreamReader(client.getInputStream));

再创建一个输出向客户端发送数据:

               PrintWriterout = new PrintWriter(client.getOutputStream());

读取客户端传来的数据,并输出到界面:

               Stringline = br.readLine();System.out.println(line);

向客户端输出数据:

               out.println(“thereare some server data”);

如果通信结束则关闭client:client.close();

对于客户端则是先得到服务器端的地址来创建socket:

        Socketserver  = new Socket(IP,PORT);  

再创建一个接受服务器端数据的缓冲:

        BufferedReader br = new BufferedReader(newInputStreamReader(server.getInputStream()));

然后创建一个发送数据到服务器的输出流:

       PrintWriter out = newPrintWriter(server.getOutputStream);

最后创建一个从本机输入的缓冲:

       BufferedReader in  = new BufferedReader(newInputStreamReader(System.in));

这样可以读取服务器的数据:

       String line = br.readline();

也可以向服务器发送数据:

       out.println(in.readline());

如果通信结束,则关闭socket:server.close();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值