首先,我知道还有其他类似的帖子,但由于我使用的是URL,而且我并不总是确定我的分隔符是什么,我觉得我可以发布我的问题.我的任务是制作一个原始的Web浏览器.我有一个textField,用户输入所需的URL.然后,我显然必须导航到该网页.这是我老师对我的代码看起来有点像的一个例子.这是我要发送到我的套接字的代码.示例网址:http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
GET /wiki/Hypertext_Transfer_Protocol HTTP/1.1\n
Host: en.wikipedia.org\n
\n
Run Code Online (Sandbox Code Playgroud)
所以我的问题是这样的:我将在url中读取一个完整的字符串,那么如何只提取"en.wikipedia.org"部分和扩展名呢?我试过这个测试:
String url = "http://en.wikipedia.org/wiki/Hypertext Transfer Protocol";
String done = " ";
String[] hope = url.split(".org");
for ( int i = 0; i < hope.length; i++)
{
done = done + hope[i];
}
System.out.println(done);
Run Code Online (Sandbox Code Playgroud)
这只是打印出没有".org"的URL.我想我走在正确的轨道上.我只是不确定.另外,我知道网站可以有不同的结尾(.org,.com,.edu等),所以我假设我必须有一些if语句来补充可能的不同结局.基本上,我如何将url放入我需要的两个部分?
我认为我的问题需要对背景进行一些解释。我的任务是创建一个基本服务器,它将在我的系统上发送客户请求的 HTML 文件。我被告知只需输入localhost:8080/index.html我的 Firefox 浏览器作为测试客户端来测试我的服务器。输入该行输入正常工作并打印出index.html. 为了安全起见,我应该进行测试以确保请求的文件在我当前的直接工作范围内,如果不是,我应该拒绝该请求。我已经设置了这样一个捕获,我想检查它。我想index.html再次使用我的文件,但是通过整个路径名又名
C:\Users\Gabrielle\Documents\NetBeansProjects\CS2 Assignment 5\src\index.html所以我在浏览器中输入
localhost:8080/C:\Users\Gabrielle\Documents\NetBeansProjects\CS2 Assignment 5\src\index.html
我得到一个错误,说文件不存在。然后我检查了它试图制作文件的内容以及它试图制作文件的内容,我得到了
C:%5CUsers%5C%5CGabreille%5C%5CDocuments%5C%5CNetBeansProjects%5C%5CCS2%20Assignment%205%5Cindex.html
这显然不是文件的名称。我只是错误地发送了文件名吗?如果有任何区别,我正在从 Windows 命令提示符运行该程序。下面是我的多线程客户端的代码和我的可运行对象的代码。如果您有任何问题或想要清楚一些,我将密切关注此线程。
import java.io.*;
import java.net.*;
public class WebServer {
public static void main(String[] args)
{
try{
ServerSocket ss = new ServerSocket(8080);
while(true){
Thread conn = new Thread(new ClientConnection(ss.accept()));
conn.start();
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
下面是实际内容
import java.io.*;
import java.net.*;
public class ClientConnection implements Runnable{
private Socket socket;
File requestedFileName;
String entireInput ="";
String …Run Code Online (Sandbox Code Playgroud) 我有一个CS课程的入门作业.我有一个名为Car的类和一个单独的数据文件,用于以后的文件重定向.我是这样的:
使用sentinel循环读取每个Car对象的品牌,年份和价格,实例化对象,并将其存储在数组carArr []中.例如,如果您创建一个分配给名为car1的变量的汽车对象,您可以这样做:carArr [i] = car1其中"i"是一个int计数器.此外,计算数组的元素,因为它们存储在int变量中,如"i"或numCars
到目前为止,这是我的代码:
Scanner scan = new Scanner(System.in);
final int SIZE_ARR = 30;
Car [] carArr = new Car[SIZE_ARR];
int i = 0;
int numcars = 0;
String make = "";
int year = 0;
double price = 0.0;
final String SENT = "EndDatabase";
while (!scan.next().equals(SENT))
{
make = scan.next();
year = scan.nextInt();
price = scan.nextDouble();
Car car1 = new Car(make, year, price);
carArr[i] = car1;
i++;
numCars++;
}
Run Code Online (Sandbox Code Playgroud)
每次循环并读入不具有相同名称的新数据时,如何创建新的Car对象?他们需要有不同的名字吗?就像我一样,我将制作一堆名为car1的对象.我最终将打印出数据库,然后在新的Car对象中将它们作为搜索键读取.然后,密钥将依次搜索carArr数组.搜索是否会混淆,因为数组中的每个元素都填充了一个同名的对象?
此外,当我通过搜索数组并将我存储的对象与我的搜索对象进行比较时,我只需要这样做:
key.equals(carArr[i])
Run Code Online (Sandbox Code Playgroud)
是否会将每个对象的实例变量相互比较?
在我的Car类中,我需要为我的year,make和price实例变量设置一个访问器方法.我需要在哪里使用这些?它还声明我必须有一个名为setPrice的"mutator方法"和"一个equals方法".知道他们对我们的意义吗?很抱歉这个和多个问题的长度.我只是想保持领先于我的工作量而我的老师没有回复电子邮件.谢谢!
**********编辑**********************************************我想到了.谢谢!
我正在为一个赋值创建一组派生类.我被指示使用char数组(c-strings).当我编译时,我不断收到错误:
Homework11.cpp: In function âint main()â:
Homework11.cpp:72: error: conversion from âchar [10]â to non-scalar type âBusinessâ requested
Homework11.cpp:73: error: conversion from âchar [10]â to non-scalar type âBusinessâ requested
Homework11.cpp:74: error: conversion from âchar [10]â to non-scalar type âAccountâ requested
Homework11.cpp:75: error: conversion from âchar [10]â to non-scalar type âAccountâ requested
Run Code Online (Sandbox Code Playgroud)
我相当肯定我的问题源于我尝试将实例变量Name设置为发送的参数.这是我的代码,其中包含注释,我相信问题可能存在.
#include <iomanip>
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
class Person{
public:
Person() {}
Person(char theName[]) {strcpy(name,theName);}
void getName(char theName[]) // I think the problem may be …Run Code Online (Sandbox Code Playgroud) 我不得不在一段时间内阅读并使用算法对每个字母进行编码,然后将它们打印到另一个文件中.我知道通常会找到一个文件的结尾,你会使用readLine并检查它是否为null.我正在使用bufferedReader.无论如何要检查是否还有另一个字符要读?基本上,我怎么知道我只读了文件的最后一个字符?
我想我可以使用readline并查看是否有另一行,如果我知道如何确定我当前行的末尾.
我发现File类有一个名为size()的方法,它以伪造的方式转换文件的字节长度.那会告诉我文件中有多少个字符?我可以while(charCount<length) 吗?
我需要从<title> </title>标签之间提取网页的标题.
还需要显示位于<body...>和</body>标签之间的所有文本,但身体外没有任何内容.
我不想要任何尖括号或任何返回的html数据.
我正在尝试创建许多不同的线程,这些线程需要等待所有线程创建才能执行任何操作.这是一个大型程序的一小部分,我只是试图采取步骤.在创建每个线程时,它立即被信号量阻塞.在创建了所有线程之后,我遍历并释放所有线程.然后,我希望每个线程打印出它的线程号,以验证它们都等待.我只允许使用另一个信号量一次打印一个线程.
我遇到的问题是虽然我创建了#1-10的线程,但是一个线程打印出它是#11.此外,一些主题说他们的数字与另一个相同.是我的传递threadID中的错误还是我的同步中的错误?
这是相关代码:
//Initialize semaphore to 0. Then each time a thread is spawned it will call
//semWait() making the value negative and blocking that thread. Once all of the
//threads are created, semSignal() will be called to release each of the threads
sem_init(&threadCreation,0,0);
sem_init(&tester,0,1);
//Spawn all of the opener threads, 1 for each valve
pthread_t threads[T_Valve_Numbers];
int check;
//Loop starts at 1 instead of the standard 0 so that numbering of valves
//is somewhat more logical.
for(int i =1; …Run Code Online (Sandbox Code Playgroud)