`
商山居士
  • 浏览: 9042 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

网络协议TCP

 
阅读更多

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议,在Java中网络通信是非常重要的TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。接下来看看简单的例子

package Wangluo;



import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;

public class tread extends Thread{
    private Socket socket;
    private String name;
    
 public tread(Socket socket){
	 this.socket=socket;
	 name=socket.getLocalAddress().getHostName();
        //获取客户端主机名字
 }
	
public void run(){
	
	try{
	    //从Socket 上获得输出流对象    从服务端到客户端
			OutputStream p=socket.getOutputStream();
			//包装成字符输出流
			OutputStreamWriter out=new OutputStreamWriter(p);
			
			//包装成缓冲字符输出流
			BufferedWriter buf=new BufferedWriter(out);
			//发送消息
			buf.write("欢迎来到聊天室"+"\r\n");
			buf.flush();
			
			//获得输入流   从客户端到服务端
			InputStream inp=socket.getInputStream();
			//将输入流包装成字符流
			InputStreamReader irs=new InputStreamReader(inp);
			//包装成字符缓冲流
			BufferedReader br=new BufferedReader(irs);
			
			//读取一行字符串,必须读到\r,\n才会结束,否则一直等待
			String str=br.readLine();
			while(str!=null){
	    		System.out.println(name+"说:"+str);
	    		 
	    		//将收到的消息转发给在线的所有其他客户端
	    		//遍历socket队列
	    		for(int i=0;i<Myserver.list.size();i++){
	    			//取出客户端套接字
	    			Socket sc=Myserver.list.get(i);
	    			//转发消息
	    			if(!sc.isClosed()&&sc!=socket){
	    				//从要被转发的客户端套接字上获得数据输出流
	    				OutputStream ops=sc.getOutputStream();
	    				//打包成缓冲字符流
	    				BufferedWriter buf1=new BufferedWriter(new OutputStreamWriter(ops));
	    				//发送消息给该客户端
	    				buf1.write(name+"说"+str+"\r\n");
	    				buf1.flush();
	    				
	    			}
	    		} 
	    		str=br.readLine();
				
			} 
	}catch(Exception ef){
		ef.printStackTrace();
		}
			
}
}

 


 

服务端的代码如下

package Wangluo;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

public class Myserver {
	static ArrayList<Socket>  list=new ArrayList<Socket>();
	public static void main(String[] args) {
	try {
     //在指定端口创建服务端套接字对象
		ServerSocket server=new ServerSocket(9090);
		System.out.println("等待连接中");
		
		while(true){
		//等待接受客户端的连接
		//必须要等到有客户端连上来,该方法才执行完毕,否则一直等待
		Socket socket=server.accept();
		System.out.println("连上一个客户端"+socket.getRemoteSocketAddress());//得到客户端地址
//		System.out.println(socket.getLocalSocketAddress());//得到服务端地址
		list.add(socket);//添加元素
		tread t=new tread(socket);
		t.start();
		}
		
		
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
   }
}

 这是一个最简单的网络通信例子,也很容易懂

分享到:
评论

相关推荐

    网络协议TCP/IP教程

    《网络协议TCP/IP教程》是一份深入探讨TCP/IP协议族的详细资料,旨在帮助学习者理解和掌握网络通信的核心原理。TCP/IP(传输控制协议/互联网协议)是互联网上广泛使用的通信协议栈,它定义了数据在网络中如何传输的...

    网络协议TCP/IP实验三TCP 协议分析实验

    湘潭大学 网络协议TCP/IP实验三TCP 协议分析实验报告,仅供参考

    网络协议TCP/IP协议课件

    这个"网络协议TCP/IP协议课件"包含了全面的学习资源,旨在帮助你深入理解这一基础概念。以下是关于TCP/IP协议的一些关键知识点: 1. **TCP/IP模型**: - TCP/IP协议栈通常分为四层(在OSI模型中对应七层):应用层...

    计算机网络协议TCP-IP_快速入门

    计算机网络协议TCP/IP是互联网通信的基础,它是众多设备和应用程序之间进行有效通信的规则集合。TCP/IP模型由四个主要层次组成:应用层、传输层、网络层和数据链路层,每一层都负责不同的功能,确保数据在互联网上...

    网络协议TCP/IP实验一 以太网链路层帧格式分析实验

    湘潭大学网络协议TCP/IP实验一, 以太网链路层帧格式分析实验报告,仅供参考

    网络协议TCP-IP分析

    网络协议TCP-IP分析,用实验来分析的

    tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议

    tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议tcp/ip协议...

    浅谈网络协议TCP

    适合网络编程的初学者,游戏开发,通讯软件的开发,计算机爱好者

    网络安全之TCP_IP协议.pdf

    网络安全之TCP_IP协议.pdf

    科来网络协议图之TCP-IP版

    《科来网络协议图之TCP-IP版》是一款极具价值的学习资源,专为理解网络协议设计,特别是TCP/IP协议族的交互与结构。这个压缩包包含了一张名为"TCP-IP.gif"的图像文件,该图以直观的方式展示了TCP/IP模型的五层结构...

    TCP/IP网络与协议

    TCP/IP网络协议的详细讲解

    TCPIP网络协议.rar_22SZ_TCP/IP_antspjy_tcpip 编程_网络协议

    TCP/IP(Transmission Control Protocol/Internet Protocol)网络协议是互联网上最基础、最重要的通信协议栈,由四层模型组成,包括应用层、传输层、网络层和数据链路层。这个压缩包“TCPIP网络协议.rar”显然包含了...

    tcp/ip网络协议

    TCP/IP(Transmission Control Protocol/Internet Protocol)网络协议是互联网上最基础、最重要的通信协议栈,它定义了数据在网络中传输的规则和标准。TCP/IP协议族由多个层次组成,包括应用层、传输层、网络层和...

    socket 网络编程 TCP协议UDP协议传输

    在本文中,我们将深入探讨TCP(传输控制协议)和UDP(用户数据报协议)这两种主要的网络传输协议,以及它们在服务器和客户端之间的应用。 首先,TCP是一种面向连接的、可靠的传输协议。在数据传输之前,TCP会建立一...

    TCP网络与协议课件

    【TCP网络与协议课件】是针对清华大学出版社出版的同名教材所编写的教学资源,由兰少华、杨余旺、吕建勇三位专家主编。这个课件深入浅出地介绍了TCP网络与协议的核心概念,是学习互联网通信协议体系的重要参考资料。...

    TCP/IP网络协议分析

    "TCP/IP网络协议分析" TCP/IP网络协议分析是计算机网络原理课程的关键组件,它们是计算机网络通信的基础。TCP/IP协议家族包括了多种协议,它们之间的协作实现了网络通信的各个方面。 TCP/IP协议家族有四个层次:...

    TCP协议分析实验报告

    ### TCP协议分析实验报告 #### 实验目的 ...通过本实验的学习,我们不仅掌握了TCP协议的基本工作原理,还深入了解了TCP协议的多个关键机制,这对于理解计算机网络中的数据传输机制具有重要意义。

    TCP协议分析网络实验报告

    ### TCP协议分析网络实验报告知识点总结 #### 一、实验背景及目的 本实验报告针对TCP协议进行深入分析...此外,实验还帮助我们理解了HTTP和DNS等常用网络协议的工作机制,为今后进一步研究网络技术打下了坚实的基础。

    网络与TCP/IP协议

    网络与TCP/IP协议

Global site tag (gtag.js) - Google Analytics