`
happyforever82
  • 浏览: 121142 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java Server端与Python客户端的Socket交互

    博客分类:
  • java
阅读更多

今天做了一个不同语言之间 C/S 的socket通讯实验,  还是发现了在不同语言间的问题. :)

服务器端

package p1;

import java.io.IOException;
import java.net.ServerSocket;

public class C1 {

 private ServerSocket ss;

 public C1() {
  try {
   int i = 0;
   ss = new ServerSocket(10000);
   while (true) {   
    i++;    
    T t = new T(ss.accept(), i);
    Thread tt = new Thread(t);
    tt.start();

   }

  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   if(ss != null){
    try {
     ss.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }

 public static void main(String[] args) {
  new C1();
 }

}

package p1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class T implements Runnable {

 private Socket socket;
 private BufferedReader in;
 private PrintWriter out;
 private int i = 0;
 
 public T(Socket socket, int i){
  this.socket = socket;
  this.i = i;
 }
 
 @Override
 public void run() {
  try {
  in = new BufferedReader(new InputStreamReader(socket.getInputStream()));      
   in.readLine();
   System.out.println(i + " Server Socket sleep 1 sec");
   Thread.sleep(1000);
   
   out = new PrintWriter(socket.getOutputStream());  
   out.write("this is " + i + " echo ");
   out.flush();
   socket.close();   
  } catch (Exception e) {
   e.printStackTrace();
  }
  
 }

 public void setSocket(Socket socket) {
  this.socket = socket;
 }

 public Socket getSocket() {
  return socket;
 }

}

客户端: (注意send时, 后面要显示加一个 \r 来告诉java的socket:"数据发送完毕", 否则会一直在in.readLine()等待)

import time

class timer(threading.Thread):

    def __init__(self, i):
        threading.Thread.__init__(self)
        self.i = i


    def run(self):

        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.connect(('192.168.2.49', 10000))

        print "connected";
        sock.send(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) + "\r")
        print "send data...";
        sock.recv(1024);
        print "recv data...";
        sock.close()

 

def test():
     n = int(raw_input("please input loop count"));
     for i in range(1, n + 1):
            t1=timer(i)
            t1.start()


if __name__=='__main__':

     test()

0
0
分享到:
评论

相关推荐

    基于socket的客户端与服务器聊天

    Socket分为服务器端(Server Socket)和客户端(Client Socket),服务器端通常监听特定的端口,等待客户端的连接请求,而客户端则发起连接请求,一旦连接建立,双方就可以通过Socket发送和接收数据。 在这个项目中...

    android socketClient

    本文将深入探讨“android socketClient”的相关知识点,包括Socket的基本概念、Android中实现Socket客户端的方法以及与Python服务器进行交互的细节。 ### 1. Socket基础知识 Socket,也称为套接字,是网络编程中的...

    使用Python进行socket编程.pdf

    在文档的行间散落着其他编程语言的名称,如Perl、Ruby、Java等,这可能意味着Python可以与这些语言进行交互或者提供了互操作性的支持。 8. Python在互联网技术中的应用 Python在文档中的提及和使用,显示了其在...

    Server客户端与服务器相互问候的服务器实现

    在IT领域,网络通信是核心部分之一,尤其是客户端与服务器之间的交互。本文将详细解析"Server客户端与服务器相互问候的服务器实现"这一主题,旨在帮助读者深入理解客户端和服务器如何进行基本的通信。 首先,我们要...

    Socket服务端与客户端通信实例

    例如,在Java中,`java.net.Socket`和`java.net.ServerSocket`类分别代表客户端和服务器端的Socket,而在Python中,可以使用`socket`模块来创建和操作Socket。 以下是一个简单的Java Socket服务端示例: ```java ...

    python-socketio:Python Socket.IO服务器和客户端

    - 对于Python客户端,可以使用`from socketio import Client`,然后实例化`client = Client()`。 - 连接到服务器:`client.connect('http://localhost:5000')`。 - 发送事件:`client.emit('event_name', {'data'...

    TCP服务端客户端交互

    这些代码通常会使用如C、C++、Java或Python等编程语言编写,并利用操作系统提供的网络编程接口(如socket API)来实现TCP通信。 通过这个实验,学习者可以深入理解TCP连接的建立和断开、数据的发送和接收过程,以及...

    python开发CS模式TCP聊天室程序源代码.rar

    Java的Socket类同样用于TCP通信,因此开发者可能利用了Python和Java之间的互操作性,例如通过Jython或者其他方式实现Python与Java的结合。 总结来说,这个Python CS模式TCP聊天室程序展示了以下几个核心知识点: 1...

    TCP服务器与客户端

    在实际编程中,通常使用如Java的Socket API、Python的socket模块或者C++的Boost.Asio库来实现TCP服务器和客户端。这些库提供了处理网络连接、读写数据以及异常处理的接口。 总的来说,TCP服务器与客户端的交互是一...

    客户端和服务器端通信

    为了实现这一过程,开发者通常会使用编程语言提供的Socket库,如Java的`java.net.Socket`和`ServerSocket`类,Python的`socket`模块,C++的`socket`函数等。在实际开发中,还需要考虑到错误处理、多线程(或多进程)...

    HP-Socket文档

    HP-Socket 与应用程序通过接口进行交互,并完全解耦。任何应用只要实现了 HP-Socket 的接口规范都可以无缝整合 HP-Socket。 易用性 HP-Socket 的接口设计得非常简单和统一。HP-Socket 完全封装了所有底层通信细节...

    WebSocket区分不同客户端两种方法(HttpSession和@PathParam)

    在一个Web应用程序中,每个用户的浏览器与服务器之间的交互都可以通过一个唯一的`HttpSession`对象来标识。因此,利用`HttpSession`可以很方便地在WebSocket中传递用户的信息。 ##### 2. 实现步骤 **步骤一:用户...

    python Game Server

    然而,需要注意的是,Python在性能上可能不如C++或Java,因此在高并发场景下可能需要优化或者结合其他语言使用。 2. **游戏服务器架构** 游戏服务器通常采用客户端-服务器(Client-Server)架构,其中服务器接收...

    基于Wifi C/S模式 Socket通讯

    客户端和服务器端通过Wifi连接,可以实现设备间的数据交互,例如智能家居控制、文件传输、在线游戏等应用。 **6. 实现步骤** - **配置网络环境**:确保设备已连接到同一Wifi网络。 - **编写客户端代码**:创建...

    异步Socket

    在异步Socket编程中,客户端(Client Socket)和服务器端(Server Socket)的交互过程如下: 1. **客户端初始化**:客户端首先创建一个Socket对象,并启动一个异步连接操作。这个操作通常不会立即完成,而是由操作...

    简单socket编程

    Socket编程是计算机网络通信中的基础概念,主要用于实现客户端与服务器之间的数据交互。在这个主题中,我们将深入探讨如何进行简单的Socket编程,以及它在客户端和服务器通讯中的应用。 首先,我们需要理解Socket的...

    UdpClient_Server.rar_服务端_服务端 客户端

    从标签“服务端 服务端_客户端”来看,可能是由于重复,但可以理解为强调了服务端与客户端的交互是该项目的核心内容。 压缩包内的文件“UdpClient_Server”很可能是一个包含了服务端和客户端实现的源代码文件或可...

    仿微信聊天软件Socket实现(包含客户端和服务端)

    在Java或Python等编程语言中,客户端通常会创建一个Socket对象,通过这个对象连接到服务器的特定端口。然后,它会将用户的输入转化为字节流,通过Socket发送出去,并监听服务器的响应,将接收到的数据转化为可读的...

    TCP_Socket.zip

    "TCP_Socket.zip"这个压缩包很可能包含了关于如何使用TCP Socket进行C-S(Client-Server,客户端-服务器)端到端实时交互的教程或代码示例。在这个场景中,TCP连接扮演着至关重要的角色,因为它提供了可靠的数据传输...

    BS结构的Socket通信

    服务器端通常使用Java、Node.js、Python等编程语言实现,它们创建一个监听特定端口的Socket服务。当Web客户端(通常是JavaScript)发起连接请求时,服务器接受连接,并建立一个Socket通道。这个通道允许数据在服务器...

Global site tag (gtag.js) - Google Analytics