`
stone02111
  • 浏览: 215182 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Socket通信编程例子

    博客分类:
  • Java
 
阅读更多

 1. 服务端程序

package com.test;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class TalkServer{
	public static void main(String[] args) {
		try {
			ServerSocket server=null;
			try {
				server=new ServerSocket(4700);
				// 创建一个ServerSocket在端口4700监听客户请求
			} catch (Exception e) {
				System.out.println("can not listen to:"+e);
				// 出错,打印出错信息
			}
			Socket socket=null;
			try {
				socket=server.accept();
				// 使用accept()阻塞等待客户请求,有客户
				// 请求到来则产生一个Socket对象,并继续执行
			} catch (Exception e) {
				System.out.println("Error."+e);
				// 出错,打印出错信息
			}
			String line;
			BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
			// 由Socket对象得到输入流,并构造相应的BufferedReader对象
			PrintWriter os=new PrintWriter(socket.getOutputStream());
			// 由Socket对象得到输出流,并构造PrintWriter对象
			BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
			// 由系统标准输入设备构造BufferedReader对象
			System.out.println("Client:"+is.readLine());
			// 在标准输出上打印从客户端读入的字符串
			line=sin.readLine();
			// 从标准输入读入一字符串
			while(!line.equals("bye")){
				// 如果该字符串为 "bye",则停止循环
				os.println(line);
				// 向客户端输出该字符串
				os.flush();
				// 刷新输出流,使Client马上收到该字符串
				System.out.println("Server:"+line);
				// 在系统标准输出上打印读入的字符串
				System.out.println("Client:"+is.readLine());
				// 从Client读入一字符串,并打印到标准输出上
				line=sin.readLine();
				// 从系统标准输入读入一字符串
				// 继续循环
			}
			os.close(); // 关闭Socket输出流
			is.close(); // 关闭Socket输入流
			socket.close(); // 关闭Socket
			server.close(); // 关闭ServerSocket
			
		} catch (Exception e) {
			System.out.println("Error:"+e);
			// 出错,打印出错信息
		}
	}
}

 

2. 客户端程序

 

 

package com.test;

import java.io.*;

import java.net.*;

public class TalkClient {

	public static void main(String args[]) {
		try {
			Socket socket = new Socket("127.0.0.1", 4700);
			// 向本机的4700端口发出客户请求

			BufferedReader sin = new BufferedReader(new InputStreamReader(
					System.in));

			// 由系统标准输入设备构造BufferedReader对象

			PrintWriter os = new PrintWriter(socket.getOutputStream());

			// 由Socket对象得到输出流,并构造PrintWriter对象

			BufferedReader is = new BufferedReader(new InputStreamReader(socket
					.getInputStream()));

			// 由Socket对象得到输入流,并构造相应的BufferedReader对象

			String readline;

			readline = sin.readLine(); // 从系统标准输入读入一字符串

			while (!readline.equals("bye")) {

				// 若从标准输入读入的字符串为 "bye"则停止循环

				os.println(readline);

				// 将从系统标准输入读入的字符串输出到Server

				os.flush();

				// 刷新输出流,使Server马上收到该字符串

				System.out.println("Client:" + readline);

				// 在系统标准输出上打印读入的字符串

				System.out.println("Server:" + is.readLine());

				// 从Server读入一字符串,并打印到标准输出上

				readline = sin.readLine(); // 从系统标准输入读入一字符串

			} // 继续循环

			os.close(); // 关闭Socket输出流

			is.close(); // 关闭Socket输入流

			socket.close(); //关闭Socket

		} catch (Exception e) {

			System.out.println("Error" + e); //出错,则打印出错信息

		}

	}
}

 

分享到:
评论

相关推荐

    Socket编程例子

    在提供的"TestSocket"文件中,可能包含了一个简单的Socket通信实例,可能包括了客户端和服务器的代码。客户端代码通常会包含创建Socket、连接服务器、发送数据和关闭Socket的过程。服务器端则涉及创建Socket、绑定...

    Socket编程简单例子

    Socket编程是计算机网络通信中的重要概念,特别是在Android应用开发中,它允许设备通过TCP/IP协议进行数据传输。...通过学习这个例子,开发者能够掌握基本的Socket通信技巧,为进一步的Android网络编程打下坚实的基础。

    Socket 网络编程例子程序

    Socket网络编程是计算机科学中的一个重要领域,特别是在分布式系统和互联网应用程序中。..."Socket网络编程例子程序"是一个宝贵的教育资源,对于想要深入学习这一领域的开发者来说,它提供了实践和探索的平台。

    c# socket 异步通信 例子

    C#中的异步Socket通信主要依赖两个关键方法:`BeginConnect`和`EndConnect`用于建立连接,`BeginSend`和`EndSend`用于发送数据,以及`BeginReceive`和`EndReceive`用于接收数据。 1. **建立异步连接** 使用`...

    socket编程 经过验证的通信例子

    - **Socket编程实例.doc**: 这个文档应该包含了完整的Socket通信代码示例,从初始化到数据传输的全过程,可能还包含了错误处理和调试技巧。 - **SOCKADDR_IN.txt**: `SOCKADDR_IN`结构体定义了IPv4地址和端口号,...

    网上收集的多个Socket编程经典例子源码

    "多线程Socket阻塞模式下通信的例子.rar"可能包含如何在Java或C#中实现多线程处理Socket通信的代码。 6. **Socket应用实例**: - "socket应用小例程.rar"和"Socket开发资料.rar"可能包含了各种Socket编程的实用...

    VC SOCKET 通信小例子

    "VC SOCKET通信小例子"是一个实用的学习资源,它演示了如何在VC中实现客户端和服务端之间的数据传输。 SOCKET是Berkeley软件套件的一部分,它为开发者提供了低级别的网络通信接口。在Windows中,这个接口被封装到了...

    Socket编程经典例子源码

    Socket编程是计算机网络编程中的重要组成部分,主要用于实现进程间的通信,尤其在网络环境中,它提供了不同计算机间进程数据传输的桥梁。本资料集包含了Socket编程的一些经典实例源码,旨在帮助开发者深入理解和应用...

    iphone Socket通信例子

    在这个“iPhone Socket通信例子”中,我们将探讨如何在iOS(iPhone)平台上利用Socket进行数据传输,以及与Mac平台上的服务端进行交互。首先,我们需要理解Socket的基本概念。 Socket,又称为套接字,是网络通信的...

    Socket编程例子_MFC

    在`Socket编程例子_MFC`这个压缩包中,可能包含了一个简单的C/S程序示例,展示了如何在MFC工程中集成Socket通信。可能包含客户端的`.cpp`和`.h`文件,以及服务器端的相应文件。代码中可能使用了`CSocket`类及其派生...

    最基本的Socket编程例子

    在这个“最基本的Socket编程例子”中,我们将深入理解Socket的基本概念、工作原理以及如何在实际编程中应用。 Socket,通常被称为套接字,是操作系统提供的一个接口,用于网络上的进程间通信。在网络编程中,Socket...

    有关Java的Socket编程入门例子

    通过这个入门例子,初学者可以理解Java Socket编程的基本原理和操作步骤,为进一步的网络编程打下坚实的基础。实际开发中,还可以结合NIO(非阻塞I/O)或其他高级框架如Netty,提高网络通信的效率和灵活性。

    C# Socket通信协议小例子

    本示例将探讨"C# Socket通信协议小例子",帮助开发者理解如何在C#中使用Socket进行网络编程。 Socket,通常被称为套接字,是网络编程中的基本组件,它允许应用程序通过网络发送和接收数据。在C#中,Socket类位于...

    最基本的C# Socket编程小例子

    通过运行这两个程序,初学者可以在本地环境中体验Socket通信的过程。 通过深入学习和实践,开发者可以进一步了解多线程Socket编程、异步通信、安全套接层(SSL/TLS)支持以及更复杂的应用场景,如聊天应用、文件...

    socket dll编程小例子

    为了在DLL中封装Socket通信,我们需要定义一个或多个函数接口,这些接口将执行Socket相关的任务,如创建Socket、连接服务器、发送数据和接收数据。 例如,我们可以定义以下DLL中的函数: 1. `int ...

    c++ socket编程实例(服务端及客户端)

    总之,C++ Socket编程实例为我们展示了如何在C++中建立网络通信,它包括了服务器的监听、连接处理和数据交换,以及客户端的连接、数据发送和接收。通过学习和实践这些基本概念,开发者可以创建自己的网络应用,如...

    vc有关SOCKET编程例子

    "vc有关SOCKET编程例子"这个标题表明我们将探讨如何在VC环境中利用SOCKET API进行网络通信。 首先,SOCKET在C++编程中是一个结构体,它封装了网络通信所需的所有信息,如IP地址、端口号等。在VC中,我们可以使用...

    Qt UdpSocket通信小例子

    标题"Qt UdpSocket通信小例子"暗示我们将学习如何使用Qt中的QUdpSocket类创建一个简单的UDP通信应用。QUdpSocket允许我们发送和接收UDP数据报,是实现UDP通信的基础。 首先,我们需要了解QUdpSocket的基本用法。...

Global site tag (gtag.js) - Google Analytics