`

Socket2

 
阅读更多
package com.huawei.xbliuc.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;


public class POP3Demo
{
    private static String POP3Service = "pop.126.com";
   
    private static String USERNAME = "username";
   
    private static String PASSWORD = "password";
   
    public static void main(String[] args)
    {
        get();
    }
   
    public static void get()
    {
        int POP3Port = 110;
        Socket client = null;
       
        try
        {
            //向POP3服务程序建立一个套接字连接
            client = new Socket(POP3Service, POP3Port);
           
            //创建一个BufferedReader对象,一遍从套接字中读取输出
            InputStream is = client.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
           
            //创建一个PrintWriter对象,以便向套接字中写入内容
            OutputStream os = client.getOutputStream();
            PrintWriter pw = new PrintWriter(os, true);
           
            //显示通SMTP服务程序握手的过程
            System.out.println("S:" + br.readLine());
            System.out.println("UserName:" + POP3Demo.USERNAME);
            System.out.println("S:" + br.readLine());
            System.out.println("PassWord:" + POP3Demo.PASSWORD);
            System.out.println("S:" + br.readLine());
            pw.print("start");
           
            String[] temp = br.readLine().split(" ");
            int count = Integer.parseInt(temp[1]);//得到信箱中有多少封信件
           
            //依次打印邮件的内容
            for (int i = 1; i < count + 1; i++)
            {
                pw.print("retr" + i);
                System.out.println("以下为第" + i + "封邮件的内容");
                while (true)
                {
                    String readLine = br.readLine();
                    System.out.println(readLine);
                    if (readLine.toLowerCase().equals("."))
                    {
                        break;
                    }
                }
            }
        }
        catch (UnknownHostException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            if (client != null)
            {
                try
                {
                    client.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }
}
分享到:
评论

相关推荐

    VC++使用Socket2网络编程(绝版好书10本)

    VC++使用Socket2网络编程(绝版好书10本) IPv6 Network Programming.pdf Network_Programming_for_Microsoft_Windows_-2 Programming Winsock-Arthur Dumas.pdf TCPIP sockets in C-Practical Guide for Progr ...

    socket2.rar_socket 多线程_socket2_socket编程_多线程 Socket

    socket编程 C++语言实现 模拟通讯通信 支持多线程

    socket 实现两台电脑间通信

    2. **客户端实现**: - **创建Socket**:客户端同样需要创建Socket。 - **连接服务器**:使用`connect()`函数向服务器发起连接请求,指定服务器的IP地址和端口号。 - **文件请求**:一旦连接建立,客户端可以向...

    c#多线程socket开发(一个服务器对多个客户端)

    "C#多线程Socket开发" C#语言开发多线程Socket服务器端程序,实现一个服务器同时与多个客户端连接对话。这里,我们将详细讲解如何使用C#语言开发多线程Socket服务器端程序,实现一个服务器同时与多个客户端连接对话...

    VC6.0 socket编程,多客户端,单服务器,网络编程

    首先,我们需要包含相应的头文件`winsock2.h`和`ws2tcpip.h`,并链接`ws2_32.lib`库。然后,调用`WSAStartup()`初始化Winsock,接着创建Socket,可以选择TCP(面向连接)或UDP(无连接)协议。TCP提供可靠的数据传输...

    socket 2进程通讯实例

    socket 本地2进程通讯实例,已在ubuntu通过测试

    socket2:Ruby 中的第 2 层原始数据包操作

    插座2 添加到允许在 Ruby 中进行第 2 层原始数据包操作的本机 ... require_relative 'socket2.rb' # Create a layer-2 socket in a mostly familiar way sock = Socket . new ( Socket :: AF_PACKET , Socket :: SOCK_

    SuperSocket服务端(WinForm),可以给客户端发送消息

    SuperSocket服务端 1.用WinForm实现。 2.可以给客户端发送消息。 注意:nuget安装包SuperSocket 基于1.6.6.1、SuperSocket.Engine 基于1.6.6.1、log4net最新即可

    SimpleSocket:一个 用 C# 调用 Win Socket 2 的 程序 , 对 Win Socket 2 简单 的 调用

    SimpleSocket一个 用 C# 调用 Win Socket 2 的 程序 , 对 Win Socket 2 简单 的 调用用 C++ 对 Win Socket 2 简单的 包装 , 再用 C# 调用 。测试结果 可以达到 每秒请求数 2万 , 和 System.Net.Sockets Socket 一...

    SocketTool socket工具

    2. **数据传输**:该工具提供发送和接收数据的功能,可以方便地进行文本或二进制数据的传输。这对于调试网络应用、测试协议兼容性或者进行快速的数据交换非常有用。 3. **协议支持**:SocketTool通常支持TCP(传输...

    SocketTool2.rar

    SocketTool是一款小巧实用且功能强大的TCP/UDP网络通讯调试工具,绿色免费且无需安装,通过它可以帮助你检查网络应用软件及硬件的通讯情况。 功能: 可以创建创建Socket服务器,创建UDP组播地址及端口,创建UDP ...

    HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_

    2. 连接服务器:`socket.Connect(new IPEndPoint(IPAddress.Parse("服务器IP"), 端口号));` 3. 发送数据:`socket.Send(Encoding.ASCII.GetBytes("要发送的数据"));` 4. 接收数据:`byte[] buffer = new byte[1024];...

    c#超级Socket库SuperSocket,SOCKET多线程编程

    2. **简单易用的API**:SuperSocket提供了一套简洁的API,使得开发者能够快速地构建自己的Socket服务,包括接收、发送数据以及处理客户端请求。 3. **可扩展性**:SuperSocket设计了插件式架构,允许开发者通过编写...

    SocketTool (TCP/UDP Socket 调试工具 V2.2)

    2. **创建TCP客户端**:输入目标服务器的IP地址和端口号,SocketTool可以主动发起连接,用于测试服务器的响应。同样,你可以在此模式下发送和接收数据。 3. **模拟UDP通信**:UDP(User Datagram Protocol)是一种...

    SuperSocket Socket C# 通讯详细介绍

    **SuperSocket Socket C# 通讯详解** 在C#编程领域,网络通信是一个不可或缺的部分,而SuperSocket则是一个强大且易用的.NET Socket服务器框架。它为开发者提供了构建自定义网络应用服务的基础,使得处理TCP连接变...

    Linux socket 网络编程

    "socket"和"socket2"等文件可能包含了基础的socket编程练习,而"Linux 网络编程"可能是一些更复杂的网络编程场景的实例。通过对这些文件的学习和实践,可以深入理解并掌握Linux环境下的Socket网络编程技术。

    socket详解 socket详解 socket详解 socket详解

    Socket 编程详解 在网络编程中,Socket 是一个基本概念, plays a crucial role in building network applications. 在 C# 中,Socket 编程是通过使用 System.Net.Sockets 命名空间中的类和方法来实现的。下面,...

    socket池,socket

    2. 获取Socket:当需要建立连接时,从池中取出一个Socket,如果池为空,则创建新的Socket。可以采用线程安全的数据结构来存储Socket,以防止并发访问时的冲突。 3. 连接复用:连接完成后,将Socket放回池中,而不是...

    SocketTool2.zip

    SocketTool2.zip是一个用于Socket测试的工具包,主要用于进行单元连接测试。在计算机网络编程中,Socket是进程间通信的一种方式,特别是在分布式系统中,它提供了客户端与服务器端之间的通信接口。Socket通常被称为...

    Linux下Socket编程

    2. Socket接口:Linux提供了丰富的Socket API供程序员使用,如socket()、bind()、listen()、accept()、connect()、send()、recv()等,它们构成了Socket编程的核心。 二、创建Socket 1. socket()函数:用于创建一个...

Global site tag (gtag.js) - Google Analytics