`
snake_hand
  • 浏览: 624692 次
社区版块
存档分类
最新评论

Java实现简单的socket通信

 
阅读更多

欢迎大家访问我的个人网站 萌萌的IT人

 

今天学习了一下java如何实现socket通信,感觉难点反而是在io上,因为java对socket封装已经很完

代码

今天代码花了整个晚上调试,主要原因是io的flush问题和命令行下如何运行具有package的类,不过最后问题基本都解决了,把代码贴出来供大家参考
 

server

 

package socket;

import java.io.*;
import java.net.*;

public class TcpServer {
    public static void main(String[] args) throws Exception {
        ServerSocket server = new ServerSocket(9091);
        try {
            Socket client = server.accept();
            try {
                BufferedReader input =
                        new BufferedReader(new InputStreamReader(client.getInputStream()));
                boolean flag = true;
                int count = 1;

                while (flag) {
                    System.out.println("客户端要开始发骚了,这是第" + count + "次!");
                    count++;
                    
                    String line = input.readLine();
                    System.out.println("客户端说:" + line);
                    
                    if (line.equals("exit")) {
                        flag = false;
                        System.out.println("客户端不想玩了!");
                    } else {
                        System.out.println("客户端说: " + line);
                    }

                }
            } finally {
                client.close();
            }
            
        } finally {
            server.close();
        }
    }
}

 

client

package socket;

import java.io.*;
import java.net.*;
import java.util.Scanner;

public class TcpClient {
    public static void main(String[] args) throws Exception {
        Socket client = new Socket("127.0.0.1", 9091);
        try {
            PrintWriter output =
                    new PrintWriter(client.getOutputStream(), true);
            Scanner cin = new Scanner(System.in);
            String words;

            while (cin.hasNext()) {
                words = cin.nextLine();

                output.println(words);

                System.out.println("写出了数据: " + words);
            }

            cin.close();
        } finally {
            client.close();
        }
    }
}
 

吐槽

java的io还是有点复杂的,蛋疼
4
1
分享到:
评论
1 楼 kongxuan 2013-12-06  
建议看看NIO以及相应的框架mina之类的,阻塞socket IO用处不大。

相关推荐

    java实现简单socket通信

    Java实现的简单Socket通信是网络编程中的基础技术,主要用于设备间的双向数据传输。在这个场景中,我们有两个窗口,一个作为服务器端,另一个作为客户端,它们通过TCP协议进行通信。TCP是一种面向连接的、可靠的传输...

    基于Java实现的socket即时通信系统

    在Java中,`java.net.Socket`和`java.net.ServerSocket`类是实现Socket通信的核心类。ServerSocket用于服务器端,监听特定端口,等待客户端的连接请求;Socket则代表客户端,它与服务器建立连接后,可以进行数据的...

    基于JAVA的简单Socket通信.pdf

    "基于JAVA的简单Socket通信" 本文主要讨论了基于JAVA的简单...通过JAVA编程,可以实现Socket通信,实现服务器A和客户端B之间的一对一的通信。Socket通信是一种基本的网络通信方式,它广泛应用于各种网络应用程序中。

    Java Socket 聊天通信演示代码

    首先,Java Socket通信基于TCP(传输控制协议),它确保了数据的可靠传输,包括数据的顺序和无丢失。在聊天应用中,服务器端创建一个Socket监听特定的端口,等待客户端的连接请求。一旦客户端连接到服务器,它们之间...

    JAVA实现基于Tcp协议的简单Socket通信实例

    【Java实现基于TCP协议的简单Socket通信实例】 在Java中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。Socket是Java中实现网络通信的基本接口,它允许两台计算机通过TCP/IP进行通信...

    SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现

    SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现。websocket_study.rar 为springMVC版本的socket实现 websocket02.rar 里面包含tomcat的websocket实现+java socket双向通信...

    基于java的开发源码-Java Socket通信实现.zip

    基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java ...

    用Java实现流式Socket通信

    中国知网上下载的文献 用Java实现流式Socket通信

    java socket通信实现

    Java Socket通信实现是一种基于TCP/IP协议的网络通信方式,它允许两台计算机通过互联网进行双向数据传输。在Java中,Socket类和ServerSocket类是实现客户端-服务器模型通信的核心工具。下面将详细介绍Java Socket...

    Java基于socket实现的客户端和服务端通信功能完整实例

    Java中提供了Socket类来实现网络通信,Socket类位于java.net包中,提供了多种方法来实现Socket的操作,如connect、send、receive等。Java中的Socket可以分为两种:ServerSocket和Socket。ServerSocket用于建立服务器...

    实现nodejs与java的socket相互通信

    本示例聚焦于Node.js与Java之间的Socket通信,这是一个非常实用的技术,因为这两种技术在Web开发和后端服务中都占据着重要的地位。让我们详细探讨一下如何实现Node.js与Java的Socket通信。 首先,Socket是一种基于...

    java与c++通过socket通信

    Java和C++之间的Socket通信是跨语言网络编程的一个常见应用场景,尤其在系统集成、设备通讯或者混合编程中。Socket提供了一种基于TCP/IP协议的进程间通信(IPC)方式,可以实现在不同操作系统上的进程之间的数据传输...

    java Socket通信实现

    Java Socket通信实现是Java网络编程中的重要组成部分,它允许两台计算机通过TCP/IP协议进行双向通信。在Java中,Socket提供了低级别的、基于连接的、面向数据流的通信API,可以用于实现客户端-服务器架构的应用程序...

    java 局域网简单socket通信,带界面

    在这个“java 局域网简单socket通信,带界面”的项目中,我们主要涉及到以下几个关键知识点: 1. **Socket原理**:Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是...

    java实现socket编程网络通信多人聊天室

    Java实现的Socket编程是网络通信中的基础技术,它允许两台或多台计算机通过网络进行数据交换,从而实现应用程序之间的通信。在多人聊天室的场景下,Socket编程扮演着至关重要的角色,它使得用户可以通过网络实时地...

    基于socket通信的javaDH通信实现

    在Java中,`java.net.Socket`类和`java.net.ServerSocket`类是实现Socket通信的基础。`ServerSocket`用于监听和接受客户端的连接请求,`Socket`则代表一个实际的连接,通过它们的输入输出流进行数据传输。 在多...

    android中java和C的socket通信demo

    本教程将详细解释如何在Android中实现Java和C的Socket通信,特别是在涉及文件描述符传递的场景下。 1. **Java Socket基础** Java中的`java.net.Socket`类提供了网络通信的能力,它允许我们在两个应用程序之间建立...

    java Socket通信实现.rar

    这样的设计使得开发者在处理Socket通信时只需调用几个简单的API,而无需关心底层的实现细节。 此外,考虑到文件名为"java Socket通信实现",这个工具包可能还包含了关于异常处理、多线程以及网络连接管理的示例。...

    Java_socket 通信示例(Java源码)

    总之,这个Java_socket通信示例提供了一个简单但实用的聊天室应用,展示了如何使用Java的Socket API进行网络通信。通过学习和研究这个示例,开发者可以更好地掌握网络编程的基础,为构建更复杂的网络应用打下坚实的...

Global site tag (gtag.js) - Google Analytics