对于socket以前只是简单的进行使用,没有系统的学习,这次正好有一个好的教材文档,从最开始复习,加深一下对socket的理解。
首先一个最基本最基本的socket应用,一个简易的聊天。
//创建服务器
ServerSocket server = new ServerSocket(9090);
//在等待客户机连接进入,进入后,生成一个Socket对象
java.net.Socket client=server.accept();
System.out.println ("Incoming "+client.getRemoteSocketAddress());
//注:server.accept()是一个阻塞方法,阻塞在这个调用上面,只有当有一个socket客户端连接上来后,这个方法才会有返回值,返回客户端的socket对象,此时才是客户端和服务器连接起来了。
//连接客户端后获取输入输出流
OutputStream ops = client.getOutputStream();
InputStream ips = client.getInputStream();
//注:向输入流中写入数据发向客户端,向输出流中写入数据发向服务端。
//发送字节数据实验
String s = "欢迎" + username + "来到聊天室\r\n";
byte[] b = s.getBytes();
ops.write(b);
ops.flush();
String str = readString(ips);
while (!str.equals("over")) {
System.out.println("服务器收到:" + str);
ChatTools.sendMsg(this.user,str);
str = readString(ips);
}
String n = "通话结束";
ops.write(n.getBytes());
ops.flush();
//关闭与客户端的连接
client.close;
readString也是一个阻塞方法,主要在其中的ips.read(),只有在客户端输入一个字符此方法才会有一个返回值。
private String readString(InputStream ips) throws IOException {
StringBuffer sb = new StringBuffer();
char c = 0;
//直到回车是一个字符串
while (c != 13) {
//删除
if (c == 8) {
sb.deleteCharAt(sb.length() - 1);
c = (char) ips.read();
} else {
sb.append(c);
c = (char) ips.read();
}
}
String str = sb.toString().trim();
return str;
}
这时可在命令行中输入telnet locahost 9090连接到服务器了
分享到:
相关推荐
在这个“socket简易网络编程”项目中,我们可以深入理解如何使用socket实现简单的聊天应用,类似于QQ,这对于初学者来说是一个很好的实践平台。 首先,让我们了解什么是Socket。Socket在操作系统层面提供了一个抽象...
Socket基础** Socket是网络编程中的一个重要概念,它是两台计算机之间建立连接并进行数据传输的接口。在TCP/IP协议栈中,Socket提供了进程间通信的能力,允许不同设备上的程序通过Internet进行通信。 **2. 服务端...
例如,MyIEByGUI系列可能是实现简单的浏览器功能,通过Socket连接到服务器获取网页内容。 8. **学习建议**: 学习Socket编程,不仅需要理解基本概念,还要动手实践,通过编写客户端和服务器端程序,理解数据的收发...
这个简单的示例可以帮助初学者理解Socket通信的基本流程,为更复杂的网络应用开发打下基础。然而,实际的网络应用可能需要处理更多的细节,如错误处理、多线程、异步I/O、SSL/TLS加密等。学习Socket编程对于任何想...
在这个"socket简单实现程序"中,我们将探讨如何使用Socket在两台电脑之间构建基本的通信链路,以及涉及到的相关知识点。 首先,Socket是网络编程的基础,它提供了一种在网络中不同进程间通信的接口。在TCP/IP协议栈...
### Java基础之三步学会Java Socket编程详解 #### 一、深入理解Socket概念与机制 ##### 1.1 什么是Socket? **Socket**,通常被称为“套接字”,是一种用于在网络间进行通信的方式,它主要负责描述IP地址和端口号...
本文将深入探讨如何在C# .NET中使用Socket构建一个简单实用的框架,以提升项目的可扩展性、健壮性和容错率。 首先,我们需要了解Socket的基本用法。在C#中,Socket的使用通常包括以下步骤: 1. **服务端监听**:...
在IT行业中,网络编程是不可或缺的一部分,而Socket编程则是实现网络通信的基础。"单线程一对一聊天SOCKET"是一个简单的网络通信示例,它利用C++语言,结合MFC(Microsoft Foundation Classes)库来实现。这里我们将...
本项目"socket 简易多人聊天室"就是一个基于Java Socket技术构建的多用户交互平台,允许多个客户端同时连接到一个服务端进行实时聊天。下面我们将深入探讨相关知识点。 首先,我们来理解Java Socket的基本概念。...
Socket编程是计算机网络通信的核心技术之一,特别是在C语言环境下,它是构建客户端-服务器应用程序的基础。本文将深入探讨Socket编程的基本概念、系统调用及其在实际编程中的应用。 首先,Socket编程始于`socket()`...
在这个“C# Socket简单聊天”项目中,我们将探讨如何利用C#的Socket类来创建一个既能作为客户端又能作为服务端的聊天程序。 Socket,又称为套接字,是网络通信的基本单元,它允许两个或多个设备之间进行数据交换。...
一对一Socket通信是网络编程中的一个基础概念,主要应用于客户端与服务器之间进行数据交换。在本文中,我们将深入探讨如何利用MFC(Microsoft Foundation Classes)框架实现这种通信方式。 MFC是微软提供的一种C++...
BSD Socket 简易入门教程旨在为初学者提供关于Linux下Socket编程的基础知识。Socket编程是一种在不同进程间实现通信的技术,特别是在Unix和类Unix系统中广泛应用。在本教程中,我们将通过类比电话的方式,逐步解析...
创建这样一个简易的Socket通讯工具,可以帮助开发者更好地理解网络通信过程,同时也可以作为实际项目开发中的基础模块。在实践中,还需要考虑更多的因素,比如多线程处理、错误恢复机制、数据编码解码等,以提升通信...
在这个“简单socket通信,学习使用”的项目中,我们可以看到一个基础的Socket通信示例,这对于初学者理解网络通信的基本原理非常有帮助。 首先,我们需要理解Socket的概念。Socket在计算机网络中是一种通信端点,它...
在本"Socket通讯简单Demo"中,包含了服务端(socketserver)和客户端(socketclient)两个部分,它们共同构建了一个简易的即时聊天应用。这个Demo非常适合初学者学习和理解Socket编程的基本原理和实现方式。 首先,...
在Java编程中,Socket通信是网络应用程序之间进行通信的一种基础技术。它允许两台计算机通过TCP/IP协议交换数据。在本项目"java,socket多线程一对一聊天"中,我们探讨的是如何使用Java的Socket库来实现一个简单的、...
本项目"socket简易java聊天室"就是一个典型的Socket应用实例,旨在帮助初学者理解Socket通信的基本原理和实现方法。 1. **Socket概念**:Socket,也称为“套接字”,是网络通信中的一个端点,用于标识网络上的进程...
本实例将探讨如何在Linux环境下使用Socket函数调用来实现一个简单的Server向Client发送消息的功能。 首先,我们来看Socket编程的基本流程: 1. **创建Socket**:使用`socket()`函数创建一个Socket描述符,指定协议...