黑马程序员——java网络技术中的tcp套接字的应用

  ------- android培训java培训、期待与您交流! ----------     
    上一篇写了udp套接字的应用,本篇接着介绍tcp传输的特点和应用,tcp跟udp在传输方式上是相对应的,它是面向连接的,传输速度慢,但是不会数据丢失。
    tcp的分为客户端和服务端,客户端向服务端发请求,服务端监听,如果连接上了那么相当于服务端有一个客户端的副本套接字,它们的流对象在网络里,可以称为网络流,用socket对象的方法获得。

    客户端建立套接字的步骤是:

    1.创建Socket服务,并制定要连接的主机和端口。socket(string s,int port);
    2.为了发送数据,应该获取socket流中的输出流。
    3.写入数据。
    4.关闭客户端。

    服务端建立套接字的步骤是:

    1.监听一个端口。severSocket(int port);
    2.要获取连接过来的客户端对象。通过severSocket的accept方法,没有连接就等,所以是阻塞式的。          socket  s=ss.accept();
    3.客户端如果发来数据,那么服务端要时候对应的客户端对象,并获取到该客户端对象的读取流来读取发过       来的数据 Inputstream in=s.getInputStream();源是网络流。
    4.关闭服务端。

    下面通过一个实例来说明其应用,客户端用键盘输入一些字母发送过去,然后服务端转成大写发过来:

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

class Send {
	public static void main(String[] args) throws Exception {
		Socket s = new Socket("192.168.1.100", 10006);
		while (true) {
			OutputStream os = s.getOutputStream();
			BufferedReader bw = new BufferedReader(new InputStreamReader(
					System.in));
			String str = null;
			str = bw.readLine();
			os.write(str.getBytes());

			InputStream is = s.getInputStream();
			byte[] buf = new byte[1024];

			int len = is.read(buf);
			String str1 = new String(buf, 0, len);
			System.out.println(str1);
		}
	}
}

class Receive {
	public static void main(String[] args) throws Exception {
		ServerSocket ss = new ServerSocket(10006);
		while (true) {
			Socket s = ss.accept();
			InputStream is = s.getInputStream();
			byte[] buf = new byte[1024];

			int len = is.read(buf);
			String str = new String(buf, 0, len);
			System.out.println(str);
			OutputStream os = s.getOutputStream();
			os.write(str.toUpperCase().getBytes());

		}
	}

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值