小编use*_*885的帖子

如何将Raw Socket绑定到特定端口?

我目前正在从事编程工作.分配是实现客户端,网络仿真器和服务器.客户端将数据包传递给网络仿真器,网络仿真器传递给服务器.反之亦然.分配的先决条件是我只能使用原始套接字.所以我将创建自己的IP和UDP标头.我用wireshark测试了我的数据包.它们都是正确的并且格式正确(它可以正确读取).

另一个要求是模拟器,客户端和服务器都有必须绑定的特定端口.现在,我不明白如何将原始套接字绑定到特定端口.我的所有原始套接字都接收它们绑定的主机地址上的所有流量.根据手册页和互联网上的其他地方,包括理查德史蒂文斯的"Unix网络编程",这就是他们应该如何工作的.我的老师没有回复我的任何电子邮件,我可能在周二之前无法问他.我看到前面有两个选项.首先,我可以使用libpcap从特定设备进行过滤,然后输出到我的原始套接字.我觉得这超出了我们的任务范围.或者我可以在从套接字接收它们后过滤它们.这显然有很多开销,因为所有数据包都是通过内核复制/移动的.至少,这是我的理解(如果我错了,请随时纠正我).

所以我的问题是:他们是一个选项还是我可以为此设置的东西?原始套接字将绑定到端口的位置?我错过了一些明显的事吗?

感谢您的时间.

-

c network-programming raw-sockets

5
推荐指数
1
解决办法
1万
查看次数

为什么设置差异功能不能将列表与文件中的数据进行比较?

这是我的文件和功能:

List1.txt =>猫狗虎熊

List2.txt =>猫狗虎

这些文件是在winodws xp上进行ANSI编码的.

(defun get-file (filename)
  (with-open-file (stream filename)
  (loop for line = (read-line stream nil)
  while line collect line)))

(defparameter *file1* (get-file "list1.txt"))
(defparameter *file2* (get-file "list2.txt"))

(set-difference *file1* *file2*)
Run Code Online (Sandbox Code Playgroud)

我认为输出只是"熊".然而,它返回("猫","狗","老虎","熊")作为差异.我假设它必须与我一起从文件中读取信息,但我被困在那里.感谢您的时间.

lisp format comparison common-lisp set-difference

3
推荐指数
1
解决办法
116
查看次数

得到一个找不到符号:来自ant的方法getSystemService

我刚开始用android和ant给我以下错误:

-compile: java:44: cannot find symbol
[javac] symbol  : method getSystemService(java.lang.String)
[javac] AudioManager am = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
                                            ^
Run Code Online (Sandbox Code Playgroud)

我导入后我不明白这个问题 android.media.AudioManager;

我的代码如下:

package com.example.findme;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
import android.media.AudioManager;

public class SMSReceiver extends BroadcastReceiver
{
public final static String EXTRA_MESSAGE = "com.example.RemoVol.MESSAGE";
public final static String SILENT_MESSAGE = "Your phone has been silenced";
public final static String VOLUME_MESSAGE = "Your phone volume is normal";

@Override   
public void onReceive(Context context, Intent intent)
{
//---get …
Run Code Online (Sandbox Code Playgroud)

ant android

1
推荐指数
1
解决办法
9455
查看次数