当前位置:首页 » 编程软件 » 服务端编程题

服务端编程题

发布时间: 2022-08-16 02:51:13

‘壹’ 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我。。。

热点内容
创建存储空间 发布:2024-05-18 21:20:57 浏览:120
sql日期和时间 发布:2024-05-18 21:16:19 浏览:141
安卓网页怎么截取 发布:2024-05-18 20:53:56 浏览:970
在配置更新的时候没电关机怎么办 发布:2024-05-18 20:36:10 浏览:927
win7访问win2000 发布:2024-05-18 20:27:41 浏览:388
青岛人社局密码多少 发布:2024-05-18 20:19:10 浏览:734
无法存储呼叫转移 发布:2024-05-18 20:18:30 浏览:126
数据库的调优 发布:2024-05-18 20:18:29 浏览:346
sqlserver注册表清理 发布:2024-05-18 20:13:14 浏览:991
linux删除连接 发布:2024-05-18 20:06:56 浏览:822