我编写了一个Python脚本,将 的文本输出转换tcpdump -i eth0 -neXXs0为text2pcap. 这是我的第一个Python程序,我正在寻找建议来提高其效率、可读性或代码中的任何潜在差异。
我正在使用的输出格式tcpdump如下所示:
20:11:32.001190 00:16:76:7f:2b:b1 > 00:11:5c:78:ca:c0, ethertype IPv4 (0x0800), length 72: 123.236.188.140.41756 > 94.59.34.210.45931: UDP, length 30
0x0000: 0011 5c78 cac0 0016 767f 2bb1 0800 4500 ..\x....v.+...E.
0x0010: 003a 0000 4000 4011 812d 7bec bc8c 5e3b .:..@.@..-{...^;
0x0020: 22d2 a31c b36b 0026 b9bd 2033 6890 ad33 "....k.&...3h..3
0x0030: e845 4b8d 2ba1 0685 0cb3 70dd 9b98 76d8 .EK.+.....p...v.
0x0040: 8fc6 8293 bf33 325a .....32Z
Run Code Online (Sandbox Code Playgroud)
输出
可以理解的格式 …
我的问题
我目前正在使用 Android Studio 开发 Android 应用程序。要选择文件,用户单击按钮,资源管理器将打开,他可以选择文件。对于这个过程,我使用了一个名为 的辅助类FileChooser.java。只要用户不从下载文件夹中选择文件,整个系统就可以很好地工作。
如果用户尝试从下载文件夹中选择文件,则会发生以下情况:
NumberFormatException: for input string: "msf:80123"
Run Code Online (Sandbox Code Playgroud)
FileChooser 返回的 URL:
content://com.android.providers.downloads.documents/document/msf:80662
Run Code Online (Sandbox Code Playgroud)
这是因为辅助类需要长类型。删除msf:并将其添加ID到末尾也不起作用。似乎将此标签Android添加msf:到下载文件夹中的所有内容中。
我也在寻找一个有效的解决方案来从下载文件夹中调用文件。
召唤
Uri selectedFile = data.getData();
InputStream dataStream = new FileInputStream(FileChooser.getPath(getContext(), selectedFile));
Run Code Online (Sandbox Code Playgroud)
FileChooser 类中的异常调用
final Uri contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
Run Code Online (Sandbox Code Playgroud)
文件选择器辅助类
package com.example.dsvconverter.helper;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
public class FileChooser {
/**
* Get a file path from …Run Code Online (Sandbox Code Playgroud) 代码:
Dictionary<String, Integer> dict = new Hashtable<>();
dict.put(record);
Run Code Online (Sandbox Code Playgroud)
如果您已经为字典定义了数据类型,是否可以将另一种数据类型放入字典中?例如,我想放置数据类型为 的记录Data。
我有一个HashSet类型:
public Class Person
{
int? _requestedHashCode;
long Id;
Name string;
DateTime BirthDate;
// Other properties
public bool IsTransient()
{
return this.Id == default(long);
}
public override int GetHashCode()
{
if (!IsTransient())
{
if (!_requestedHashCode.HasValue)
_requestedHashCode = this.Id.GetHashCode() ^ 31;
return _requestedHashCode.Value;
}
else
return base.GetHashCode();
}
public override bool Equals(object obj)
{
if (obj == null || !(obj is Person))
return false;
if (Object.ReferenceEquals(this, obj))
return true;
if (this.GetType() != obj.GetType())
return false;
Entity item = (Entity)obj; …Run Code Online (Sandbox Code Playgroud)