python黑客库文件_python黑客代码的搜索结果-阿里云开发者社区

【网络编程5】Java与Python套接字Socket通信的例子

今天看一本Python黑客相关的书的第一章部分,边看边在Linux Ubuntu Kylin 32位系统的终端打Python代码,就基本会用Python语言了,包括socket内容。刚好我之前学习Java Socket通信,今天就试着用Python写客户端,并与Java服务器端通信,经过一些调试,最后成功了。Github根链接是:https://github.com/1040003585/javanettextbook/tree/master/Java_Python

——惠州学院13网络工程 吴成兵 20160621

目录

目录

一 特别说明

1 Python写客户端特别说明

2 Java服务器端特别说明

21 接收数据特别说明

22 发送数据特别说明

二 操作运行

1 操作步骤

2 运行截图

三 源代码

1 Python写客户端代码

2 Java服务器端代码

一 特别说明

1.1 Python写客户端特别说明

indata=input():输入字符(串)数据为加引号,如:‘ab’;

s.send(str(indata)+”\n”) :要加“\n”,这样就是完成发送一条数据过去;

s.recv(1024).strip(‘\n’) :接收1024B大小的数据,最好过滤掉回车符号;

1.2 Java服务器端特别说明

1.2.1 接收数据特别说明

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

String string=br.readLine();

if(string==null)continue;

1.2.2 发送数据特别说明

PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);

pw.println(string);

二 操作运行

2.1 操作步骤

确保linux系统安装了Java JDK和Python,即在Terminal终端中输入“java”、“javac”和“python”有正常反馈效果。

在同一个目录下,新建Server.java文件,并存放Java服务器端代码放;新建Client.py,并存放Python代码。

在该目录打开Terminal终端,输入javac Server.java,编译服务器端代码,生成Server.class。

输入java Server运行服务器端,输入python Client.py运行客户端。

2.2 运行截图

三 源代码

3.1 Python写客户端代码

import socket

socket.setdefaulttimeout(2)

s=socket.socket()

s.connect(("localhost",9955))

print("C:input data (with 'end' for exit the program)")

goon=True

while(goon):

print "C:-------------------------------------"

print "C:Please input data:"

indata=input()

s.send(str(indata)+"\n") #must add "\n"

data=s.recv(1024).strip('\n')

if "end"!=data :

print("C:receive result:"+data)

else:

goon=False;

print("C:end...")

s.close()

3.2 Java服务器端代码

import java.io.*;

import java.net.*;

import java.util.*;

public class Server {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("Swait for connect......");

try {

ServerSocket serverSocket = new ServerSocket(9955);

Socket socket=serverSocket.accept();

System.out.println("S connet from:"+socket.getInetAddress().getHostAddress());

//DataInputStream dis=new DataInputStream(socket.getInputStream());//dis.readUTF();// un success!

//DataOutputStream dos=new DataOutputStream(socket.getOutputStream());//dos.writeUTF(string);dos.flush();

BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));//br.readLine();// success...

PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);//pw.println(string);

boolean goon=true;

while(goon){

//String string=dis.readUTF();

String string=br.readLine();

if(string==null)continue;

System.out.print("S:receive data:("+string+")");

if(string.equals("end")==false){

string=dealWith(string);

//dos.writeUTF(string);

//dos.flush();

pw.println(string);

System.out.println(" ,S:计算结果("+string+") sent...");

}else{

goon=false;

//dos.writeUTF("end");

//dos.flush();

pw.println("end");

System.out.println("\n");

}

}

serverSocket.close();

//dis.close();

//dos.close();

br.close();

pw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

public static String dealWith(String string){

double radius=0.0;

try {

radius=Double.parseDouble(string);

} catch (NumberFormatException e) {

return "NumberFormatException";

}

if(radius<0)return "data can't less 0";

double area=radius*radius*Math.PI;

return Double.toString(area);

}

}

文中所有源代码

Wu_Being博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢!

《Java与Python套接字Socket通信的例子》: http://blog.csdn.net/u014134180/article/details/51730369

如果你看完这篇博文,觉得对你有帮助,并且愿意付赞助费,那么我会更有动力写下去。

文章

Java · Python · Linux · 安全 · Ubuntu

2016-06-21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值