using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.IO;
using System.Net;
namespace ServerV1._1
{
public partial class ServerConf : Form
{
public static void saveIni()
{
// 写文件
string iniPath = "C:\\calpuff\\ini\\calpuff.ini";
if (!File.Exists(iniPath))
{
MessageBox.Show("calpuf.ini is missing ,please place it as 'C:\\calpuff\\ini\\calpuff.ini'");
return;
}
FileStream fs = new FileStream(iniPath, FileMode.Open, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("dbIp" + " " + Form1.dbIp);
sw.WriteLine("dbName" + " " + Form1.dbName);
sw.WriteLine("dbUser" + " " + Form1.dbUser);
sw.WriteLine("dbPasswd" + " " + Form1.dbPasswd);
sw.WriteLine("ftpIp" + " " + Form1.ftpIp);
sw.WriteLine("ftpUser" + " " + Form1.ftpUser);
sw.WriteLine("ftpPasswd" + " " + Form1.ftpPasswd);
sw.WriteLine("inpDir" + " " + Form1.inpDir);
sw.WriteLine("exeDir" + " " + Form1.exeDir);
sw.WriteLine("wrfoutDir" + " " + Form1.wrfoutDir);
sw.WriteLine("outputDir" + " " + Form1.outputDir);
sw.WriteLine("srcDir" + " " + Form1.srcDir);
sw.Close();
fs.Close();
}
public ServerConf()
{
InitializeComponent();
// 初始化
textBox1.Text = Form1.dbIp;
textBox2.Text = Form1.dbName;
textBox3.Text=Form1.dbUser;
textBox4.Text=Form1.dbPasswd ;
textBox9.Text=Form1.ftpIp;
textBox7.Text= Form1.ftpUser;
textBox6.Text=Form1.ftpPasswd;
}
// Test connection
private void button1_Click(object sender, EventArgs e)
{
MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection();
// 到时候换成一个公网IP
string connStr = "server=" + textBox1.Text + ";user id=" + textBox3.Text + ";password=" + textBox4.Text + ";database=" + textBox2.Text + ";pooling=false;charset=utf8";
conn.ConnectionString = connStr;
try
{
conn.Open();
MessageBox.Show("Database Successfully Connected");
}
catch
{
MessageBox.Show("Database Connection Error");
}
conn.Close();
}
// Confirm 保存并且关闭窗口
private void button2_Click(object sender, EventArgs e)
{
Form1.dbIp = textBox1.Text;
Form1.dbName = textBox2.Text;
Form1.dbUser = textBox3.Text;
Form1.dbPasswd = textBox4.Text;
Form1.ftpIp = textBox9.Text;
Form1.ftpUser = textBox7.Text;
Form1.ftpPasswd = textBox6.Text;
// 存储到本地配置
saveIni();
this.Close();
}
private void button3_Click(object sender, EventArgs e)
{
MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection();
string connStr = "server=" + Form1.dbIp + ";user id=" + Form1.dbUser + ";password=" + Form1.dbPasswd + ";database=" + Form1.dbName + ";pooling=false;charset=utf8";
conn.ConnectionString = connStr;
try
{
conn.Open();
}
catch
{
MessageBox.Show("Database Connection Error");
return;
}
MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = textBox5.Text;
try
{
cmd.ExecuteNonQuery();
}
catch
{
MessageBox.Show("Your SQL Command Has Syntax Error");
return;
}
cmd.Dispose();//此处可以不用调用,
conn.Close();// 离开 using 块, connection 会自行关闭
MessageBox.Show("Successful");
}
private void textBox5_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A && e.Control)
{
textBox5.SelectAll();
}
}
private void textBox7_TextChanged(object sender, EventArgs e)
{
}
private void label8_Click(object sender, EventArgs e)
{
}
//Ftp Connection Test
// 上窜ini文件上去~来测试
// 也可以直接测试连接
private void button4_Click(object sender, EventArgs e)
{
string iniPath = "C:\\calpuff\\ini\\calpuff.ini";
FileInfo fileInfo = new FileInfo(iniPath);
// 这样理解:请求让这个链接变成合法
string uri = "ftp://" + textBox9.Text + "/" + fileInfo.Name; // fileInfo.Name 仅仅是这个文件名 好东西啊
// 我对ftp的理解
// 【1】 用一个 ip 确定一台机器 一个用户名和密码 对应了一个物理目录
// 【2】 连接成功以后可以用iP+文件名来访问这个文件 (因为连接保持着就意味着确定了文件夹)
//
// Connecting Fhase
FtpWebRequest ftpWebRequest;
// 根据uri创建FtpWebRequest对象
ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
// 指定数据传输类型
ftpWebRequest.UseBinary = true;
// ftp用户名和密码
ftpWebRequest.Credentials = new NetworkCredential(textBox7.Text, textBox6.Text);
// 默认为true,连接不会被关闭
// 在一个命令之后被执行
ftpWebRequest.KeepAlive = false;
ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
// 上传文件时通知服务器文件的大小
ftpWebRequest.ContentLength = fileInfo.Length;
// 缓冲大小设置为kb
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
// 打开一个文件流(System.IO.FileStream) 去读上传的文件
FileStream fs = fileInfo.OpenRead();
try
{
//把上传的文件写入流
Stream ftpUploadStream = ftpWebRequest.GetRequestStream(); // 流就是通道
// 每次读文件流的kb
contentLen = fs.Read(buff, 0, buffLength); // 然后文件的二进制流就在buff数组中
// 返回0 表示读完了
// 流内容没有结束
while (contentLen != 0)
{
// 把内容从file stream 写入upload stream
ftpUploadStream.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength); // Read 文件会记住上次读的进度,从上次结束的地方开始
}
ftpUploadStream.Close();
fs.Close();
}
catch
{
MessageBox.Show("Ftp Connection Error");
return;
}
MessageBox.Show("Ftp Successfully Connected ");
}
}
}
calpuff-server-ServerConf.cs
最新推荐文章于 2024-06-03 09:34:41 发布