`
海王子1994
  • 浏览: 45485 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

通信入门之实现最简单的网上聊天

 
阅读更多

       想要实现网上聊天,就必须先了解网络通信。像平时我们遵守的法制法规,网络通信也有网络协议。网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。只有相同网络协议的计算机才能进行信息的沟通与交流。

       最常见而且应用最广的协议,应该就是TCP/IP了。它同时具备了可扩展性和可靠性的需求,只是牺牲了速度和效率。想要聊天,就要先知道双方的IP地址,然后按照协议互相传输信息。再引入一个套接字的概念吧,他是支持TCP/IP的网络通信的基本操作单元,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。

 

ServerSocket ss=new ServerSocket(port); 
			System.out.println("成功监听端口"+port);
			//调用接收方法,等待他人进行访问;返回一个socket
			Socket socket=ss.accept();
			System.out.println("访问成功");

      这里就是创建服务器的套接字,可以理解成你给自己服务器端口开了一扇门,然后安排了一个人接待他人的访问。

 

 

       接下来就是获得信息的输入输出流,实现信息的双向传输。

 

//获得端口的输入输出流
			InputStream input=socket.getInputStream();
			OutputStream output=socket.getOutputStream();
			
			String str="吃饭了吗";
			output.write(str.getBytes("GBK"));
				
			
			while(true)
			{
//				int n=input.read();
//				System.out.println((char)n);
				String mst=ReadStr(input);
				System.out.println(mst);
			}

 

 

 因为我们聊天主要是通过汉字,所以这里要弄一个读取字符串的方法

//读取字符串的方法
	public String ReadStr(InputStream input) throws IOException
	{
		/*ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组
		 的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例
		 向数组中写入或读出byte型数据。在网络传输中可以利用ByteArrayOutputStream把
		 所有的变量收集到一起,然后一次性把数据发送出去。*/
		ByteArrayOutputStream bos=new ByteArrayOutputStream();
		
		while(true)
		{
			int n=input.read();
			//判断当按下回车键时,停止向bos中存入字节。
			if(n=='\r')
			{
				continue;
			}
			if(n=='\n')
			{
				break;
			}
			bos.write(n);
		}
		//创建一个字节数组,将之前程序内部创建的字节型数组缓存区所存的字节统统移给新数组
		byte[]bytes=bos.toByteArray();
		//创建字符串变量,把所有字节合在一起
		String str=new String(bytes,"GBK");
		return str;
	}

 最后,在搜索中输入cmd,然后输入telnet +端口号,就能实现和其他计算机之间的简单聊天了,不过只能在黑框框里面,感觉还是木有意思呀,所以接下来就是要弄一个聊天窗口等其他事情了。

 

2
0
分享到:
评论

相关推荐

    一个最简单的聊天程序

    本篇文章将详细讲解如何利用Java编写一个最简单的聊天程序。 首先,我们需要理解Java中的基本概念。Java是一种面向对象的语言,它的核心特性包括封装、继承和多态性。在构建聊天程序时,我们将主要使用面向对象的...

    最简单的c#网络聊天室

    【标题】"最简单的C#网络聊天室"项目是一个适合初学者入门的网络编程实践,主要使用C#语言实现。这个聊天室应用的核心是通过网络通信技术让多个用户能够进行实时交流。C#,作为微软.NET框架的主要开发语言,提供了...

    socket 实现客户端和服务端的双向通信

    在IT行业中,网络编程是构建分布式系统的关键技术之一,而Socket是实现网络通信的基本接口。本实例主要关注如何使用Socket库来实现TCP/IP协议下的客户端(Client)与服务端(Server)之间的双向通信。TCP/IP协议是...

    C#简单网络聊天

    在这个“C#简单网络聊天”项目中,开发者使用C#构建了一个基础的网络聊天应用程序,使得用户可以通过TCP/IP协议进行实时通信。TCP/IP协议是互联网上最基础的通信协议,确保了数据的可靠传输。 项目关键知识点: 1....

    nodeJS+socket.io做一个简单的聊天室

    在本文中,我们将深入探讨如何使用Node.js和Socket.IO创建一个简单的聊天室。这是一个非常实用的项目,适合初学者入门,同时也是对这两种技术的绝佳实践。 Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它...

    利用fms实现视频聊天程序

    【标题】:“利用FMS实现视频聊天程序” 在IT领域,构建实时的视频聊天应用程序是一项常见的挑战,尤其是在当今社交媒体和远程工作环境中。FMS(Flash Media Server)是Adobe公司推出的一款强大的流媒体服务器,它...

    java实现服务器与客户端的聊天

    Java 实现服务器与客户端的聊天是一项基础而重要的网络编程任务,尤其对于初学者而言,它能帮助理解如何在不同计算机之间交换数据。本资源通过一个简单的SocketDemo示例,揭示了Java网络通信的核心原理和实践技巧。 ...

    socket入门最简单一句话传输

    在IT行业中,网络编程是不可或缺的一部分,而Java的Socket编程则是实现网络通信的基础。本教程将带你入门Java Socket,通过"一句话传输"的例子,让你快速理解其基本原理和使用方法。 首先,我们来看"一句话传输"的...

    java游戏之聊天室

    本项目“java游戏之聊天室”旨在实现一个基本的在线实时交流平台,让用户能够通过网络进行互动。 首先,让我们深入探讨Java中的多线程技术。在聊天室应用中,多线程是必不可少的,因为它允许同时处理多个任务。例如...

    简单易学asp在线聊天室

    总的来说,"简单易学asp在线聊天室"是一个很好的学习项目,它涵盖了Web开发中的基础概念和技术,如服务器端脚本、数据库操作、客户端脚本以及实时通信,对于初学者来说,这是一个全面且实用的入门途径。

    Socket 网络通信编程

    Socket网络通信编程是计算机网络中实现进程间通信的一种方式,特别是在局域网用户聊天和文件传输中广泛应用。本文将深入探讨Socket编程的概念、原理以及如何在多线程环境下实现聊天应用和文件发送。 首先,Socket...

    ajax简单入门讲解

    **Ajax(Asynchronous JavaScript and XML)简单入门讲解** Ajax 是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心在于JavaScript,通过创建XMLHttpRequest对象来与服务器进行异步数据交换,...

    网络编程从入门到精通源代码

    7. **实战项目**:通过实际的项目练习,如实现一个简单的聊天室、文件传输服务等,能更好地巩固所学知识,并提升解决问题的能力。 源代码中的每个示例都是精心设计的,旨在帮助你理解特定的概念或技术。通过阅读、...

    VB从入门到实践

    - **网络聊天室**:利用Socket编程技术,实现简单的多人在线聊天功能。 #### 6. 学习资源推荐 - **官方文档**:Microsoft官网提供了大量的VB文档和教程。 - **社区论坛**:Stack Overflow、CSDN等社区有大量的VB...

    QQ聊天c语言

    总结来说,通过学习C语言来实现一个简单的QQ聊天程序,我们可以系统地掌握C语言编程的各个方面,包括窗口编程、网络通信、数据库操作等。这个过程不仅能够加深对C语言的理解,还能提高解决实际问题的能力。通过不断...

    socket入门Demo

    Socket编程是计算机网络通信中的重要概念,主要用于实现进程间的通信,尤其在分布式系统和互联网应用中扮演着核心角色。这个“socket入门Demo”应该包含了基本的Socket编程实例,旨在帮助初学者理解和掌握Socket通信...

    网络对战五子棋(简单入门)

    《网络对战五子棋:简单入门指南》 五子棋,又称连珠,是一种源自中国的古老棋类游戏,以其简单易学、深奥无穷的特点深受人们喜爱。在网络技术日益发达的今天,我们可以通过编程实现网络对战五子棋,让玩家在虚拟...

    node 从入门到精通最新教程

    本课程将介绍如何在Node.js中集成Socket.IO,实现简单的聊天室功能。 课程中还将讲解如何使用模板引擎(如EJS和Tinyliquid)来渲染动态网页,如何使用express框架来处理路由、中间件和模板渲染等,这些技术都是构建...

    基于Socket的简单的Android聊天室,易学,易懂

    这个聊天室简单易学,适合初学者入门。 Socket在计算机网络中起到了桥梁的作用,它允许两台机器通过互联网进行数据交换。在Android平台上,Socket编程主要用于创建客户端-服务器架构的应用程序,例如聊天应用、文件...

Global site tag (gtag.js) - Google Analytics