`
lijia3449
  • 浏览: 9707 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

简单的socket通讯学习,1对1聊天

阅读更多

 

1:简单介绍Socket和ServerSocket的通信,如下,注意客户端和服务是怎么交换数据的



 

 

1:客户端代码

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;

public class Client {

	private static int port = 12315; // 端口
	private static String address = "localhost";
	public void chat() throws IOException {
		try {
			Socket socket = new Socket(address, port); // 连接到服务器.

			try {
				// 获得从服务端发送过来的信息
				DataInputStream din = new DataInputStream(socket
						.getInputStream());

				// 声明想发送到服务器的输出流
				DataOutputStream dout = new DataOutputStream(socket
						.getOutputStream());

				Scanner scan = new Scanner(System.in); // 获得客户端输入的信息
				while (true) {
					String sendMsg = scan.nextLine();
					if (!"".equals(sendMsg)) {
						System.out.println("****客户端: " + sendMsg
								+ "  ");
						dout.writeUTF(sendMsg);
						String recvMsg = din.readUTF();
						if (null != recvMsg) {
							System.out.println("***服务端: " + recvMsg
									+ "  ");
						}
					}
				}

			} finally {
				socket.close();
			}
			} finally {
		}
	}
	
	public static void main(String[] aregs) throws IOException{
		new Client().chat();
	}
}

 

 

2: 服务端代码

 

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class HostServer {
	private static int port = 12315;
	public void service(){
		try{
		ServerSocket server = new ServerSocket(port);  //建立服务器连接
		
		Socket socket = server.accept();   //等待客户端连接
		try{
		DataInputStream din = new DataInputStream(socket.getInputStream()); //获得客户端输入流
		DataOutputStream dout = new DataOutputStream(socket.getOutputStream()); //取得输出流
		
		Scanner scan = new Scanner(System.in);
		
		while(true){
			String recvMsg = din.readUTF();  //获得客户端发送的信息
			System.out.println("------客户端:" + recvMsg);
			String sendMsg = scan.nextLine();
			System.out.println("------服务端:" + sendMsg);
			dout.writeUTF(sendMsg);  //将从控制台读取的数据发送给客户端
		}
		}finally{
			socket.close();
		}
		}catch (Exception e) {
		}
	}
	
	public static void main(String[] args){
		new HostServer().service();
	}
	
}

 

 

先运行HostServer,在运行Client,

这个程序满足1对1的信息交互,

  • 大小: 81 KB
分享到:
评论

相关推荐

    简易Socket聊天工具

    在这个名为“简易Socket聊天工具”的项目中,我们可以通过Socket来构建一个简单的聊天环境,让客户端和服务器之间,以及客户端与客户端之间能够进行实时的信息交换。下面将详细介绍Socket通信的基础知识以及在聊天...

    Socket通讯简单Demo

    在本"Socket通讯简单Demo"中,包含了服务端(socketserver)和客户端(socketclient)两个部分,它们共同构建了一个简易的即时聊天应用。这个Demo非常适合初学者学习和理解Socket编程的基本原理和实现方式。 首先,...

    C# 聊天的SOCKET通讯程序

    本篇文章将深入探讨C#中的SOCKET通讯程序,包括服务端与客户端的实现、多线程的运用以及委托和事件的应用。 首先,我们来理解什么是SOCKET。SOCKET是网络通信的基本单元,它允许两台计算机通过网络进行数据交换。在...

    基于socket通讯的聊天室

    本项目"基于Socket通讯的聊天室"采用C#编程语言,利用客户端-服务器模式来构建一个简单的实时聊天系统。这里我们将深入探讨相关知识点。 首先,**C#**是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows...

    一个简单的SOCKET通讯程序

    本示例“一个简单的SOCKET通讯程序”旨在阐述如何构建一个基本的客户端-服务器(C/S)架构,通过Socket进行数据传输。 首先,我们来了解Socket的基本概念。Socket是操作系统提供的接口,它允许应用程序通过Internet...

    C# Socket通讯/TCP通讯,完整代码demo

    本示例提供了一个完整的C# Socket通讯/TCP通讯的代码demo,旨在帮助开发者理解和应用网络通信技术。 首先,我们要理解Socket的基本概念。Socket在计算机网络中扮演着桥梁的角色,它允许两台计算机通过网络进行数据...

    基于vb.net的socket的聊天软件

    基于socket的TCP通讯是window编程的基本技术,通过该案例研究学习可以在掌握面向对象编程方法的同时,对通用协议进行了解。同学们可视时间、精力完成不同复杂程度的程序 为原创,引用时请注明出处。

    c# SOCKET 聊天通讯 实例

    在IT行业中,网络通信是软件开发中的重要环节,特别是在分布式系统和实时应用中。C#是一种广泛用于构建桌面和Web应用程序的编程语言,它提供了强大的...通过实际的聊天通讯实例,开发者可以更好地学习和运用这些概念。

    socket通讯java语言聊天室(仿qq风格)

    【Java Socket通信与聊天室实现】 Java Socket编程是网络编程中的基础部分,它...这个"socket通讯java语言聊天室(仿qq风格)"实例是一个很好的学习平台,可以帮助你深入理解这些核心概念,并在实践中提高编程技巧。

    Socket通讯代码示例

    Socket通讯在IT行业中是网络编程的基础,主要用于实现进程间的通信,尤其在分布式系统、服务器端应用和客户端应用间的数据交互中扮演着重要角色。在这个"Socket通讯代码示例"项目中,我们主要会探讨以下几个核心知识...

    C# Socket通讯DEMO

    本文将深入探讨“C# Socket通讯DEMO”中的关键知识点,包括Socket的基本概念、C#中Socket的使用、服务端与客户端的构建,以及如何实现简单的聊天功能。 1. **Socket基础**: Socket,通常被称为套接字,是网络通信...

    Socket简易通讯聊天系统.rar

    Socket简易通讯聊天系统是一个专为初学者设计的项目,它主要展示了如何利用.NET框架中的Socket类进行网络通信。Socket在计算机网络编程中扮演着至关重要的角色,它是一种用于实现进程间网络通信(IPC)的低级接口,...

    socket 聊天通信工具

    Socket聊天通信工具是一种基于客户端-服务器...通过以上分析,我们可以看到,"socket聊天通信工具"项目涵盖了网络编程、多线程、UI设计、数据处理和安全等多个方面的知识,是学习和实践网络通信技术的一个良好平台。

    经典 VB.net 里面的socket通讯范例

    提供的压缩包文件"VB.net TCPIP 通讯范例"应该包含了更完整的代码示例,可以进一步学习和参考。 总之,VB.NET中的Socket通信涉及TCP/IP协议的基础知识,包括服务器端的监听和客户端的连接,以及数据的发送和接收。...

    安卓XMPP聊天通讯Socket相关-简易微信客户端和服务器源码.rar

    【标题】"安卓XMPP聊天通讯Socket相关-简易微信客户端和服务器源码"涉及的核心技术是XMPP(Extensible Messaging and Presence Protocol)协议,这是一种基于XML的即时通讯协议,广泛应用于移动聊天应用,如Android...

    安卓XMPP聊天通讯Socket相关-SocketClient.zip

    通过对这些知识点的学习和实践,你可以构建一个基础的XMPP聊天客户端,并理解其工作原理,这对于开发实时通讯应用非常有帮助。记得在实践中不断调试和完善代码,以确保其在不同环境下的稳定性和兼容性。

    C# winform Socket 即时通讯

    在IT行业中,即时通讯(Instant Messaging,简称IM)是一种常见的技术,它允许...通过这个项目,开发者不仅可以学习到如何使用C#建立一个简单的即时通讯系统,还能深入了解网络通信的基础原理及其在实际应用中的实践。

    socket通讯软件.zip

    在本项目"socket通讯软件.zip"中,我们可以看到它涉及到的是服务端与多个客户端之间的交互,即一对多的通信模式。 首先,我们需要理解Socket的基本概念。Socket是网络通信的一种接口,它为应用程序提供了发送和接收...

    聊天室基础项目资料_socket聊天室_聊天室_java项目_socket_

    在这个项目中,开发者将学习如何利用Java的Socket类来创建客户端和服务器端的连接,实现实时的数据传输,构建一个简单的聊天环境。 【描述】"TCP/IP通信,使用Socket编程,java即时聊天室" 揭示了项目的重点在于...

    Socket通讯包

    Socket通讯包是一个重要的编程工具,主要用于在客户端和服务器之间建立网络通信。Socket是TCP/IP协议族的一...通过学习和实践,你可以熟练地利用Socket通讯包进行客户端和服务器之间的数据交换,满足各种网络通信需求。

Global site tag (gtag.js) - Google Analytics