服務端編程題
『壹』 java期末考試編程題,多線程與客戶端伺服器端的購票系統
不用框架吧,創建個服務端和客戶端還有幾個線程模擬下就行了
『貳』 JAVA TCP Socket編程 計算題
伺服器端CalculateServer.java:
packageserverMole;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintStream;
importjava.net.ServerSocket;
importjava.net.Socket;
publicclassCalculateServer{
publicstaticvoidmain(String[]args){
=newCalculateServer();
try{
calculateServer.startServer();
}catch(Exceptione){
e.printStackTrace();
System.out.println("伺服器出錯!");
}
}
//把輸入的字元串轉換成float數組
publicfloat[]convertToArray(StringinputString){
StringnumberString=inputString.substring(inputString.indexOf('[')+1,inputString.indexOf(']'));
String[]stringArray=numberString.split(",");
float[]numberArray=newfloat[2];
for(inti=0;i<2;i++){
try{
numberArray[i]=Float.parseFloat(stringArray[i]);
}catch(NumberFormatExceptione){
System.out.println("數字錯誤!");
returnnull;
}
}
returnnumberArray;
}
//計算數組結果
publicStringgetResultString(float[]numberArray){
float[]result=newfloat[4];
result[0]=numberArray[0]+numberArray[1];
result[1]=numberArray[0]=numberArray[1];
result[2]=numberArray[0]*numberArray[1];
result[3]=numberArray[0]/numberArray[1];
StringresultString=String.format("[%1$s,%2$s,%3$s,%4$s]",result[0],result[1],result[2],result[3]);
returnresultString;
}
//socketServer
publicvoidstartServer()throwsException{
ServerSocketserverSocket=null;
PrintStreamout=null;
BufferedReaderin=null;
SocketsocketObj=null;
try{
serverSocket=newServerSocket(1888);
System.out.println("伺服器啟動...");
socketObj=serverSocket.accept();
out=newPrintStream(socketObj.getOutputStream());
in=newBufferedReader(newInputStreamReader(socketObj.getInputStream()));
}catch(IOExceptione){
System.out.println("伺服器啟動失敗!");
}
booleanflag=true;
CalculateServercs=newCalculateServer();
try{
while(flag){
StringinputString=in.readLine();
System.out.println("接收到數據:"+inputString);
if(inputString.equals("bye")){
flag=false;
continue;
}
if(inputString==null||inputString.length()<5){
out.println("你的輸入有誤!");
}else{
out.println(cs.getResultString(cs.convertToArray(inputString)));
}
}
}catch(Exceptione){
out.println("數據輸入有誤!");
}finally{
out.close();
in.close();
socketObj.close();
serverSocket.close();
}
}
}
客戶端CalculateClient.java
packageclientMole;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.io.PrintStream;
importjava.net.Socket;
publicclassCalculateClient{
publicstaticvoidmain(String[]args){
=newCalculateClient();
try{
calculateClient.startClient();
}catch(Exceptione){
System.out.println("啟動失敗!");
}
}
publicvoidstartClient()throwsException{
SocketsocketObj=newSocket("localhost",1888);
PrintStreamout=null;
BufferedReaderin=null;
out=newPrintStream(socketObj.getOutputStream());
in=newBufferedReader(newInputStreamReader(socketObj.getInputStream()));
BufferedReaderlocalInput=null;
localInput=newBufferedReader(newInputStreamReader(System.in));
booleanflag=true;
while(flag){
System.out.println("請輸入兩個數字,格式為[number1,number2],輸入bye則退出:");
StringinputString=localInput.readLine();
out.println(inputString);
if(inputString.equals("bye")){
flag=false;
}else{
Stringinput=in.readLine();
System.out.println("伺服器返回結果為:");
System.out.println(input);
}
}
out.close();
in.close();
localInput.close();
socketObj.close();
}
}
『叄』 編寫Windows下或者linux下的http伺服器.
伺服器有很多種的windows的iis,還有apache的web伺服器有windwos下面用的,也有linux下面的版本,web伺服器不用編寫,要安裝,從網上下載。iis可以通過光碟安裝,或者通過光碟鏡像用虛擬光碟機安裝。
支持cgi的推薦你使用Apache伺服器。
『肆』 一道關於網路編程及多線程的Java編程題目
So Easy的代碼,如你真的想學習java 連這點代碼都不願意寫,那你最後什麼都學不到。如果只是為了應付考試或者是聯系,網路一下Java網路編程,到處都是在這樣的代碼
建議自己先試下,不成功再到網路上來看下,什麼事都想到先問他人是學不到什麼的
『伍』 搜索編程題有沒有什麼軟體
先說結論:需要根據你想學什麼編程語言來選擇編程軟體。
看題主的提問應該對編程沒有太多的了解,姑且認為從來沒有接觸過編程吧。
估計題主說的編程軟體也就是說集成開發環境(IDE)吧,就是程序員寫代碼的軟體。
如果題主學的C語言或者c++的話,剛開始學慣用VC++6.0(免費),兩周後換CodeBlocks(免費),熟悉了之後用一兩個用,最後換成VisualStudioIDE。
如果題主學的是Java的話,一開始用eclipse(免費),一兩個月後可以換IDEA.
如果題主學的是python的話,一開始用python安裝包自帶的就可以了(免費),一兩周後換PyCharm
如果題主學的是web前端(h5,js之類的),一開始可以用sublime(免費)或者hbuilder(免費),熟悉之後換webstorm。這里更新一下,也可以使用vscode搭配插件來使用。
下面我要開始啰嗦了:
首先你自己應該知道自己為什麼要學編程,或者說是說了編程之後要干什麼,這個很重要,決定著你以後學習的方向。打個比方,你說你想要學做飯,那麼你要學的是炒菜、糕點還是其他的什麼,還是說要做西餐還是中餐。目標不一樣,學習的東西也是不一樣的。
假如你覺得電影電視劇上的黑客特別厲害,彈指間黑了別人的網站。你想有這樣的技術,這屬於網路安全方面的,這個方向又分為操作系統方向、web網站服務安全方向、嵌入式安全方向(這么分只是我個人的理解,還能從其他方面區分)。這個時候你應該全面的了解計算機,包括但不限於計算機組成(各個配件是干什麼、配件的工作原理)、計算機網路(就是你怎麼能上網的這么一個過程)。這個時候你應該學習操作系統原理、計算機組成原理、計算機網路、C語言之類的。
2. 假如你看到某個網站很漂亮,你也想做個這樣的網站(頁面),你需要學習html、h5、和JavaScript相關的東西。當然了解了這些之後,就要接觸一些服務端的東西(就是給你提供網頁上展示內容的東西),服務端現在大部分是java、php和python寫的,也有的使用node.js之類的語言寫的。當然也有其他的各種各樣的編程語言。
3. 假如你覺得網路、阿里、騰訊的服務好厲害,那麼多人同時訪問伺服器居然能撐得住,你需要學習服務端的編程語言,比如java、python,學習過程中你會學到資料庫。然後學習框架(java的ssh(有人說這個框架過時了,但用的企業也不少,springboot。python的框架:flask、Django之類的))
4. 假如你覺得某個手機應用比較好,自己也想做一個,Android手機應用現在大部分是java寫的,先學java,然後學Android。蘋果手機應用現在大部分是objective-c(oc)來寫,還有一部分是swift語言寫的。,學習的過程中你會了解到更多的可以開發手機應用的語言以及各種各樣的框架(混合開發、vue、RN之類的),以及開發手機應用的各種姿勢。
5. 假如你看著周圍的人對計算機軟體特別了解,什麼軟體都會用、什麼軟體都會安裝、就算不會的也能很快上手,**這個就不是編程了**,多用用計算機,有了問題網上搜一下,日積月累你也能成為這樣的人。
6. 假如你覺得周圍有的人對計算機硬體很了解,什麼cpu超頻、性價比、整機組裝、顯卡評測之類的,這也是平常了解到的,**和編程無關**,多看看計算機相關的雜志,關注一下各大計算機配件的供應商官網以及論壇之類的都可以。
**最關鍵的還是入門,入了門就好說了,如果朋友有會編程的,可以讓他們幫幫你,確定自己想學什麼,然後請他們幫你入門,然後就是自己學了。**
『陸』 c++網路編程題
客戶端:
#include <iostream>
#include <Winsock2.h>
#include <sstream>
#pragma comment(lib, "Ws2_32.lib")
using namespace std;
#define MY_PORT 22222
char g_Buf[1024] = {0};
void main()
{
//網路環境
WSADATA wsaData;
//設置套接字版本號為v2.2
WSAStartup(MAKEWORD(2, 2), &wsaData);
cout << "伺服器:開啟網路..." << endl;
Sleep(1000);
system("cls");
SOCKET sock; //定義套接字
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //初始化套接字
SOCKADDR_IN ServerAddr = {}; //填充地址信息
ServerAddr.sin_family = AF_INET; //設置協議為TCP協議
ServerAddr.sin_port = /*htons(MY_PORT)*/MY_PORT; //設置埠 必須和伺服器埠一致,不然連接不上伺服器
cout << "請輸入伺服器的IP地址:"; //獲取訪問的地址
char cServerIP[32];
cin >> cServerIP;
ServerAddr.sin_addr.s_addr = inet_addr(cServerIP); //設置訪問地址 inet_addr - 將字元串形式的IP地址轉換為無符號長整形IP地址
cout << "開始連接伺服器..." << endl;
Sleep(1500);
system("cls");
bool Cnt = true;
if (SOCKET_ERROR == connect(sock, (SOCKADDR*)&ServerAddr, sizeof(ServerAddr))) //連接伺服器
{
cout << "連接伺服器失敗..." << endl;
Cnt = false;
}
else
{
cout << "成功連接伺服器..." << endl;
Cnt = true;
}
while (1) //進入發送信息循環
{
if (Cnt == true)
{
cout << "請輸入信息:";
cin >> g_Buf;
int iSend = send(sock, g_Buf, int(strlen(g_Buf) + 1), 0);
if (SOCKET_ERROR == iSend)
{
cout << "發送消息失敗..." << endl;
cout << "伺服器已經關閉!" << endl;
break;
}
else
{
if (0 == strcmp(g_Buf, "quit"))
{
cout << "發送退出消息..." << endl;
Sleep(1000);
system("cls");
cout << "關閉伺服器..." << endl;
break;
}
else
{
Sleep(350);
recv(sock, g_Buf, 1024, 0);
cout << "伺服器收到消息:" << g_Buf << endl;
}
}
}
else
{
break;
}
}
//cout << "關閉伺服器..." << endl;
Sleep(2000);
system("cls");
cout << "關閉客戶端..." << endl;
//釋放資源
closesocket(sock);
Sleep(2000);
}
伺服器端:
#include<iostream>
#include<Winsock2.h>
#pragma comment(lib, "Ws2_32.lib")
using namespace std;
#define MY_PORT 22222 // 埠
char g_Buf[1024] = {0}; //緩沖區
void main()
{
WSADATA wsaData; //網路環境
WSAStartup(MAKEWORD(2, 2), &wsaData); //設置套接字版本號為v2.2
cout << "伺服器:開啟網路鏈接..." << endl;
Sleep(1500);
system("cls");
SOCKET sListen; //定義監聽套接字
sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //初始化監聽套接字
SOCKADDR_IN Sadd = {};
Sadd.sin_family = AF_INET; //設置協議為TCP協議
Sadd.sin_port = /*htons(MY_PORT)*/MY_PORT; //設置埠
int SockAddSize = sizeof(SOCKADDR_IN); //套接字數據結構大小
bind(sListen, (SOCKADDR*)&Sadd, SockAddSize); //綁定套接字
cout << "伺服器:綁定埠..." << endl;
Sleep(1500);
system("cls");
listen(sListen,SOMAXCONN); //設置套接字為監聽模式,設置能同時監聽的最大客戶數量
cout << "伺服器:開始監聽..." << endl;
SOCKET sClient; //客戶端套接字
SOCKADDR_IN Cadd = {}; //客戶端套接字數據,包含IP等總要信息
sClient = accept(sListen, (SOCKADDR*)&Cadd, &SockAddSize); //建立,等待連接
if (INVALID_SOCKET == sClient)
{
WSACleanup();
}
cout<< "伺服器:客戶端【" <<
(int)Cadd.sin_addr.S_un.S_un_b.s_b1 << "." <<
(int)Cadd.sin_addr.S_un.S_un_b.s_b2 << "." <<
(int)Cadd.sin_addr.S_un.S_un_b.s_b3 << "." <<
(int)Cadd.sin_addr.S_un.S_un_b.s_b4 << "】已連接..." <<endl;
int iRecvNum = 0; //接收位元組的個數
while (1)
{
iRecvNum = recv(sClient, g_Buf, 1024, 0); //接收數據
if (iRecvNum < 1)
{
cout << "伺服器:客戶端失去連接..." << endl;
Sleep(1500);
system("cls");
break;
}
send(sClient, g_Buf, 1024, 0);
if (strcmp(g_Buf,"quit") == 0)
{
cout << "伺服器:客戶端發送退出命令..." << g_Buf << endl;
break;
}
cout << "客戶端" << /*Sadd.sin_port*/MY_PORT << "消息:" << g_Buf << endl;
}
cout << "伺服器:准備關閉伺服器..." << endl;
closesocket(sListen);
closesocket(sClient);
WSACleanup();
Sleep(2000);
system("cls");
cout << "伺服器:已經關閉伺服器..." << endl;
Sleep(2000);
}
啟動的時候先啟動伺服器,然後啟動客戶端
『柒』 java伺服器編程的初級問題
1.不知道你是不是因為沒有學過Spring框架的使用,你可以去學習了解下Spring和SpirngMVC框架的使用。
2.第二個、第三個問題我暫時不知道怎麼講,抱歉哈,嘿嘿
『捌』 求linux下C語言編程題目!
區域網聊天程序(分為客戶端和伺服器端,分別用多進程、多線程、select),簡單的scp服務端和客戶端(復雜點可以用多線程),簡單的shell(實現管道命令|、後台運行命令&、重定向命令><),多線程拷貝文件。這些都是我當初培訓的時候做過的。自我最滿意的還算區域網聊天程序,實現過了多進程、多線程,沒試過用select。呵呵
『玖』 用socket 編程介面編寫兩個程序,分別為客戶程序(client.c)和伺服器程序(server.c)
using System.Net;
using System.Net.Sockets;
static void Main(string[] args)//伺服器段
{
int port = 2000;
string host = "127.0.0.1";
/**/
///創建終結點(EndPoint)
IPAddress ip = IPAddress.Parse(host);//把ip地址字元串轉換為IPAddress類型的實例
IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的埠和ip初始化IPEndPoint類的新實例
/**/
///創建socket並開始監聽
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//創建一個socket對像,如果用udp協議,則要用SocketType.Dgram類型的套接字
s.Bind(ipe);//綁定EndPoint對像(2000埠和ip地址)
s.Listen(0);//開始監聽
Console.WriteLine("等待客戶端連接");
/**/
///接受到client連接,為此連接建立新的socket,並接受信息
Socket temp = s.Accept();//為新建連接創建新的socket
Console.WriteLine("建立連接");
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//從客戶端接受信息
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
/**/
///給client端返回信息
Console.WriteLine("server get message:{0}", recvStr);//把客戶端傳來的信息顯示出來
string sendStr = "ok!Client send message successful!";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
temp.Send(bs, bs.Length, 0);//返回信息給客戶端
temp.Close();
s.Close();
Console.ReadLine();
}
static void Main(string[] args)//客戶端
{
try
{
int port = 2000;
string host = "127.0.0.1";
/**/
///創建終結點EndPoint
IPAddress ip = IPAddress.Parse(host);
//IPAddress ipp = new IPAddress("127.0.0.1");
IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和埠轉化為IPEndpoint實例
/**/
///創建socket並連接到伺服器
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//創建Socket
Console.WriteLine("Conneting…");
c.Connect(ipe);//連接到伺服器
/**/
///向伺服器發送信息
string sendStr = "hello!This is a socket test";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);//把字元串編碼為位元組
Console.WriteLine("Send Message");
c.Send(bs, bs.Length, 0);//發送信息
/**/
///接受從伺服器返回的信息
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = c.Receive(recvBytes, recvBytes.Length, 0);//從伺服器端接受返回信息
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
Console.WriteLine("client get message:{0}", recvStr);//顯示伺服器返回信息
/**/
///一定記著用完socket後要關閉
c.Close();
}
catch (ArgumentNullException e)
{
Console.WriteLine("argumentNullException: {0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException:{0}", e);
}
Console.WriteLine("Press Enter to Exit");
}
『拾』 java網路編程實驗題遠程訪問伺服器目錄的程序
代碼如下。。。我測試過了。。。。下面兩個類是在同一台機器上進行測試的,先運行Server.java,再運行Client.java
import java.io.*;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Server {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(8080);
Socket socket = ss.accept();
BufferedReader in = //獲取客戶端發過來的消息
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter out = //用於向客戶端發送消息
new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()),true);
while(true){
String message = in.readLine();//讀取消息
if("quit".equals(message))//退出命令
break;
String s[] = message.split("\\s+");
if("dir".equals(s[0])){
File dir = new File(s[1]);
File[] files = dir.listFiles();
//向客戶端發送文件消息
for(File file:files){
Date date = new Date(file.lastModified());
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//日期格式化
FileInputStream is = new FileInputStream(file);
out.println(file.getName()+"\t"+df.format(date)+"\t"+((is.available()+1023)/1024)+"k");
}
out.println("ok");
}
}
socket.close();
in.close();
out.close();
ss.close();
}
}
-------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws Exception{
InetAddress add = InetAddress.getByName(null);
Socket socket = new Socket(add,8080);
BufferedReader in = //獲取伺服器端發過來的消息
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter out = //用於向伺服器端發送消息
new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()),true);
out.println("dir d:/test");
String mes;
while(true){
mes = in.readLine();
if("ok".equals(mes))
break;
System.out.println(mes);
}
out.println("quit");
socket.close();
in.close();
out.close();
}
}
希望能幫到你。。。仍有問題可以追問或者直接HI我。。。