導航:首頁 > 配伺服器 > 單擊觸發伺服器如何發送數據

單擊觸發伺服器如何發送數據

發布時間:2022-04-23 15:27:05

1. 我想問下php當中一個按鈕怎樣把信息發送到要去的伺服器呢 php新手,分實在沒有了,但我相信問題很簡單。

這樣,在一個網頁里弄個form表單
<form action="server.php" method="post">
姓名:<input type="text" /><br />
年齡:<input type="text" /><br />

<input type="submit" value="提交" />
</form>

上面是html代碼

下面是單擊提交按鈕後數據發送到server.php頁面
print_r($_POST);

2. android做客戶端socket如何讓點擊按鈕向伺服器發送信息

使用基於TCP協議的Socket
一個客戶端要發起一次通信,首先必須知道運行伺服器端的主機IP地址。然後由網路基礎設施利用目標地址,將客戶端發送的信息傳遞到正確的主機上,在java中,地址可以由一個字元串來定義,這個字元串可以使數字型的地址(比如192.168.1.1),也可以是主機名(example.com)。
而在android 4.0 之後系統以後就禁止在主線程中進行網路訪問了,原因是:

主線程是負責UI的響應,如果在主線程進行網路訪問,超過5秒的話就會引發強制關閉,所以這種耗時的操作不能放在主線程里。放在子線程里,而子線程里是不能對主線程的UI進行改變的,因此就引出了Handler,主線程里定義Handler,子線程里使用。
以下是一個android socket客戶端的例子:
---------------------------------Java代碼---------------------------------------
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class TCPSocketActivity extends Activity {

public static final String TAG = TCPSocketActivity.class.getSimpleName();

/* 伺服器地址 */
private String host_ip = null;
/* 伺服器埠 */
private int host_port = 0;

private Button btnConnect;
private Button btnSend;
private EditText editSend;
private EditText hostIP;
private EditText hostPort;
private Socket socket;
private PrintStream output;
private String buffer = "";
private Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_socket_test);
context = this;
initView();

btnConnect.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
host_ip = hostIP.getText().toString();
host_port = Integer.parseInt(hostPort.getText().toString());
new Thread(new ConnectThread()).start();
}
});

btnSend.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new SendThread(editSend.getText().toString())).start();
}
});
}

private void toastText(String message) {
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}

public void handleException(Exception e, String prefix) {
e.printStackTrace();
toastText(prefix + e.toString());
}

public void initView() {
btnConnect = (Button) findViewById(R.id.btnConnect);
btnSend = (Button) findViewById(R.id.btnSend);
editSend = (EditText) findViewById(R.id.sendMsg);
hostIP = (EditText) findViewById(R.id.hostIP);
hostPort = (EditText) findViewById(R.id.hostPort);
}

private void closeSocket() {
try {
output.close();
socket.close();
} catch (IOException e) {
handleException(e, "close exception: ");
}
}

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (0x123 == msg.what) {
toastText("連接成功!");
}
}
};

/* 連接socket線程 */
public class ConnectThread implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
Message msg = Message.obtain();
try {
if (null == socket || socket.isClosed()) {
socket = new Socket();
socket.connect(new InetSocketAddress(host_ip,host_port),5000);
output = new PrintStream(socket.getOutputStream(), true,
"utf-8");
}
msg.what = 0x123;
handler.sendMessage(msg);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

/*發送信息線程*/
public class SendThread implements Runnable {

String msg;

public SendThread(String msg) {
super();
this.msg = msg;
}

@Override
public void run() {
// TODO Auto-generated method stub
try {
output.print(msg);
} catch (Exception e) {
e.printStackTrace();
}
closeSocket();
}

}

public class SocketThread implements Runnable {
public String txt1;

public SocketThread(String txt1) {
super();
this.txt1 = txt1;
}

@Override
public void run() {
// TODO Auto-generated method stub
Message msg = Message.obtain();
try {
/* 連接伺服器 並設置連接超時為5秒 */
if (socket.isClosed() || null == socket) {
socket = new Socket();
socket.connect(new InetSocketAddress(host_ip,host_port),5000);
}
// 獲取輸入輸出流
PrintStream ou = new PrintStream(socket.getOutputStream(),
true, "UTF-8");
BufferedReader bff = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// 讀取發來伺服器信息
String line = null;
buffer = "";
while ((line = bff.readLine()) != null) {
buffer = line + buffer;
}

// 向伺服器發送信息
ou.print(txt1);
ou.flush();
// 關閉各種輸入輸出流
bff.close();
ou.close();
socket.close();
msg.what = 0x123;
handler.sendMessage(msg);
} catch (UnknownHostException e) {
} catch (IOException e) {
}
}
}
}
-----------------------------布局文件activity_socket_test.xml--------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
android:orientation="vertical" >

<EditText
android:id="@+id/hostIP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:hint="伺服器ip"
android:singleLine="true"
android:inputType="text" />

<EditText
android:id="@+id/hostPort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:hint="埠"
android:singleLine="true"
android:inputType="number" />

<Button
android:id="@+id/btnConnect"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/style_btn_shape"
android:layout_margin="5dip"
android:text="@string/connect"
android:textColor="@color/white" />

<EditText
android:id="@+id/sendMsg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:hint="需要發送的內容"
android:inputType="text" />

<Button
android:id="@+id/btnSend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:background="@drawable/style_btn_shape"
android:layout_gravity="center_vertical|center_horizontal"
android:text="@string/send"
android:textColor="@color/white" />

</LinearLayout>
-------------------------樣式文件style_btn_shape.xml----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的顏色 -->
<solid android:color="#0465b2" />
<!-- 設置按鈕的四個角為弧形 -->
<!-- android:radius 弧形的半徑 -->
<corners android:radius="15dip" />

<!-- padding:Button裡面的文字與Button邊界的間隔 -->
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"
/>
</shape>
------------------------------END---------------------------------------

3. 向伺服器發送請求的參數的值是如何傳過去的

//觸發函數
function
checkpart(){
var
hhpntext=document.getElementById("HHPNText").value;
var
url="./CheckPartServlet?HHPNText="+hhpntext;//請求地址及參數傳遞
xmlHttp.open("GET",
url,
true);//建立請求
xmlHttp.onreadystatechange=handle;//設置回調函數
xmlHttp.send(null);//發送請求
你如果用post的話就放到下面的send裡面

4. 問一下,怎麼能讓伺服器主動向客戶端發送數據

在HTTP中有一種長連接技術,可以模仿Socket通信實現伺服器端主動向客戶端瀏覽器發送數據。它的原理其實很簡單:當伺服器端接到客戶端的詢問請求後,將整個HTTP連接置於阻塞狀態,即什麼也不做,也不發送數據,也不關掉連接。直到客戶端需要將最新數據返回給客戶端時,將數據通過這個HTTP連接返回回去,並且關閉連接。這樣,客戶端看到的結果,就似乎是伺服器端主動向客戶端瀏覽器發送數據了。但是,關掉連接以後怎麼辦呢?這時候,可以通過客戶端JS代碼中的定時器,再次發起請求。這樣,只有內容發生了變化,才會進行一次HTTP會話,所以整體效率比輪詢方式要高出很多,同時還有了更好的及時性。

5. 如何向伺服器埠發送數據包

就是SOCKET 的send和recv ,如果用MFC就用CSocket ,要不直接用socket都一樣,包括在linux/UNIX下 !!

6. 如何用伺服器發送數據包

你好!
你說的這個是DDOS攻擊,就是用多個Pc向目標Pc發送大量無效數據包,目標Pc接收到這些數據包會回應,而這些數據包都是一些沒有具體鏈接的數據包,而目標Pc卻一直等待著對方的回應,從而佔用目標Pc大量的內存和接入網帶寬,造成嚴重的網路擁堵甚至伺服器宕機(掉線,死機)如何實現你只有找別人了,這個問題很嚴重!

7. 易語言伺服器怎麼發送信息給全部取回來的客戶

不明白編輯框有什麼用。


.局部變數 n, 整數型

.計次循環首 (超級列表框.取表項數 (), n)
伺服器.發送數據 (超級列表框.取標題 (n, 0), 「欲發送數據」, )
.計次循環尾 ()

/*假設的是超級列表框的 0 列是客戶IP 請根據源碼進行修改

8. 易語言伺服器發送數據()的問題

第一個程序
編輯框1用來顯示文件路徑
編輯框2用來顯示對方發來的文本
按鈕1用來瀏覽文件
按鈕2用來發送文件
此外還有伺服器 通用對話框

.版本 2

.程序集 窗口程序集1

.子程序 _按鈕1_被單擊

通用對話框1.打開 ()
編輯框1.內容 = 通用對話框1.文件名

.子程序 _按鈕2_被單擊

伺服器1.發送數據 (客戶IP, 讀入文件 (通用對話框1.文件名), 1000)
信息框 (「發送成功」, 0, )

.子程序 _伺服器1_數據到達
.局部變數 file, 位元組集

file = 伺服器1.取回數據 ()
編輯框2.內容 = 到文本 (file)
信息框 (「數據到達」, 0, )

第二個程序
編輯框1用來顯示保存文件的路徑
編輯框2用來顯示發送的文本
按鈕1用來發送文本
此外還有通用對話框 客戶
.版本 2

.程序集 窗口程序集1

.子程序 _按鈕1_被單擊

客戶1.連接 (用戶IP, 19730)
客戶1.發送數據 (編輯框1.內容)
信息框 (「已發送」, 0, )

.子程序 _客戶1_數據到達
.局部變數 file, 位元組集

file = 客戶1.取回數據 ()
通用對話框1.打開 ()
編輯框1.內容 = 通用對話框1.文件名
信息框 (「已保存」, 0, )

我試過了,可以的……
在使用時可以將「客戶IP」與「用戶IP」替換成想要的IP地址就可以了 IP為文本型

9. html如何向伺服器發送信息

Server-Sent 事件 - 單向消息傳遞Server-Sent 事件指的是網頁自動獲取來自伺服器的更新。以前也可能做到這一點,前提是網頁不得不詢問是否有可用的更新。通過伺服器發送事件,更新能夠自動到達。例子:Facebook/Twitter 更新、估價更新、新的博文、賽事結果等。瀏覽器支持所有主流瀏覽器均支持伺服器發送事件,除了 Internet Explorer。接收Server-Sent 事件通知EventSource 對象用於接收伺服器發送事件通知:實例var source=new EventSource("demo_sse.php"); source.onmessage=function(event) { document.getElementById("result").innerHTML+=event.data + "<br />"; }; 例子解釋:創建一個新的 EventSource 對象,然後規定發送更新的頁面的 URL(本例中是 "demo_sse.php")每接收到一次更新,就會發生 onmessage 事件當onmessage 事件發生時,把已接收的數據推入 id 為 "result" 的元素中檢測Server-Sent 事件支持在上面的 TIY 實例中,我們編寫了一段額外的代碼來檢測伺服器發送事件的瀏覽器支持情況:if(typeof(EventSource)!=="undefined") { // Yes! Server-sent events support! // Some code..... } else { // Sorry! No server-sent events support.. } 伺服器端代碼實例為了讓上面的例子可以運行,您還需要能夠發送數據更新的伺服器(比如 PHP 和 ASP)。伺服器端事件流的語法是非常簡單的。把 "Content-Type" 報頭設置為 "text/event-stream"。現在,您可以開始發送事件流了。

閱讀全文

與單擊觸發伺服器如何發送數據相關的資料

熱點內容
創建app賬號有一步代碼填什麼 瀏覽:348
安卓牌組怎麼導入手機 瀏覽:321
python曲線數據預設 瀏覽:845
漢能壓縮機 瀏覽:73
全球加密貨幣十大交易平台 瀏覽:963
汽車如何與伺服器連接 瀏覽:85
如何創建伺服器密碼 瀏覽:918
creo扭曲命令正常使用 瀏覽:51
ase加密qt 瀏覽:666
看app登錄和不登錄有什麼區別 瀏覽:464
da轉換單片機 瀏覽:680
程序員老婆發型 瀏覽:816
py腳本反編譯 瀏覽:463
為什麼國內網路用國外的app卡 瀏覽:937
centos7更新命令 瀏覽:987
自動播放文件夾怎麼關閉 瀏覽:770
slam演算法實現 瀏覽:347
復制目標文件夾訪問被拒需要許可權 瀏覽:411
linuxbcast修改 瀏覽:185
手機如何用雲伺服器掛軟體 瀏覽:280