socket编程实例tomcat

tomcat网络连接的实例
sock套接字的原理
socket编程是一门技术,它主要是在网络通信中经常用到 ,既然是一门技术,由于现在是面向对象的编程,一些计算机行业的大神通过抽象的理念,在现实中通过反复的理论或者实际的推导,提出了抽象的一些通信协议,基于tcp/ip协议,提出大致的构想,一些泛型的程序大牛在这个协议的基础上,将这些抽象化的理念接口化,针对协议提出的每个理念,专门的编写制定的接口,与其协议一一对应,形成了现在的socket标准规范,然后将其接口封装成可以调用的接口,供开发者使用

目前,开发者开发出了很多封装的类来完善socket编程,都是更加方便的实现刚开始socket通信的各个环节,所以我们首先必须了解socket的通信原理,只有从本质上理解socket的通信,才可能快速方便的理解socket的各个环节,才能从底层上真正的把握
TCP协议
TCP/IP协议不同于iso的7个分层,它是根据这7个分层,将其重新划分,好比打扫卫生,本来有扫帚,垃圾斗,抹布,涂料,盆栽等就好比OSI的标准几个分层,tcp/ip根据用途和功能,将扫帚,垃圾斗放到粗略整理层,抹布涂料放到中度整理层,盆栽放到最终效果层
TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中

应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等

传输层:TCP,UDP

网络层:IP,ICMP,OSPF,EIGRP,IGMP

数据链路层:SLIP,CSLIP,PPP,MTU
tomcat编程实例函数方法

ServerSocket server = new ServerSocket(80);
在这里插入代码片

创建套接字80端口连接

Socket clientSocket = server.accept();
在这里插入代码片

等待连接,

1
建立服务器与客户端的连接
1.1
创建服务器

	public static void main(String[] args) {
		// 创建socket对象
		try {
			ServerSocket server = new ServerSocket(80);
			while (true) {
				// 等待连接请求
				Socket clientSocket = server.accept();// 阻塞
				System.out.println(clientSocket.getRemoteSocketAddress());
				// 建立连接之后开始通讯
				OutputStream os = clientSocket.getOutputStream();// 向网卡写入数据
				InputStream in = clientSocket.getInputStream();// 从网卡读取数据
//字符流读取数据
				BufferedReader br = new BufferedReader(new InputStreamReader(in));
				String line = null;
				while ((line = br.readLine()) != null&&line.length()>0) {
					System.out.println(line);
				}
//发送数据,发送字符流
				BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
				bw.write("连接成功\r\n");
				bw.write("\r\n");
				bw.flush();// flush将缓存的内容写入流
				os.close();
				in.close();
				clientSocket.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
在这里插入代码片

1.2创建客户端

public class Client {
	public static void main(String[] args) {
		try {
			Socket client = new Socket("10.0.18.69", 80);
			InputStream in = client.getInputStream();
			OutputStream out = client.getOutputStream();
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
			bw.write("你好\r\n");
			bw.write("\r\n");
			bw.flush();
			BufferedReader br = new BufferedReader(new InputStreamReader(in));
			String line = null;
			while ((line = br.readLine()) != null && line.length() > 0) {
				System.out.println("服务器:" + line);
			}

		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值