X



ネットワークプログラミング相談室 Port30 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0551デフォルトの名無しさん
垢版 |
2017/05/23(火) 20:03:51.47ID:+G6/THmC
TCP_NODELAYで1024バイトを2つsendして、そのあとのタイミングで
2048バイトで受信待ちをしたらどうなるか?

2048バイト1回で受信しきる実装はおそらくこの世にありません。
2048バイトでreadしても1024バイトが2回受信できます。
嘘だと思うなら試してみましょう。
0553デフォルトの名無しさん
垢版 |
2017/05/23(火) 23:51:55.53ID:XSLyG5v1
TCP_NODELAYで、一発のsendで送ったものが2度以上のrecvに分かれるなんて普通に起こるんだが
ちなXP時代のWinsock

そんなに綺麗にいくんならネットワークプログラミングで苦労しないんだよなあ・・・
0554デフォルトの名無しさん
垢版 |
2017/05/24(水) 00:09:29.45ID:OKPHnMsP
>>551
とりあえずWin10でwinsock2で
TCP_NODELAYかけたソケットに5バイトのsendを4回行って
recv1024バイトで受け止めたら一発で20バイトとれたぞ

お前がいるのはあの世か?

というか一発でとれなかったらTCPの受信効率悪すぎてヤバイから実験するまでもないことなんだがな・・・
0557デフォルトの名無しさん
垢版 |
2017/05/24(水) 11:45:41.07ID:21J7O/JH
SCTPでやるという選択肢は?
0562デフォルトの名無しさん
垢版 |
2017/06/23(金) 10:32:04.01ID:0OdP20aK
test
0563デフォルトの名無しさん
垢版 |
2017/07/30(日) 14:05:52.46ID:akjgDvR8
struct sockaddr* を引数にするライブラリを書いているんだけど
どうせみんな struct sockaddr_storage に保存するんだし
もういっそライブラリ内での引数は全部 struct sockaddr_storage* にしてもいいよな
対外的なところだけ struct sockaddr* にするわ
0567デフォルトの名無しさん
垢版 |
2018/02/03(土) 09:43:16.35ID:HOqv4vPr
単純にsocketを使ってTCP/lPでクライアントとサーバーで通信するプログラムをLinuxのC言語で作っています。
ただsocketはノンブロッキングに設定しています。
クライアントはconnectを呼んだ後に正常にサーバーと繋がったか知りたくてselectを呼んでいますが、待ち状態からリターンしてきません。
サーバー側はacceptしており、その後に試しにクライアントへデータを送るとselectがリターンしてくるので、確実にsyn ackはクライアントへ返っていると思います。
selectはサーバーからのsyn ackでは待ち状態は解除されないのでしょうか。
やりたいことはconnectではサーバー応答を待たないで即リターンし、コネクションが確立できたかの結果は別途知りたい。
ググるといくつかのサイトでsocketをノンブロッキングに設定して、connectをコールした後にselectで待つサンプルがありました。
それを真似たのですが、サーバー側はconnec待ちの状態で、クライアントがconnectコール後にselectをコールしてもselectはリターンしてこない。
こうすれば出来る、あるいはそんなこと出来ないなどありましたらご教授お願いします。
0569デフォルトの名無しさん
垢版 |
2018/02/03(土) 09:49:30.43ID:qWVkS+Es
select呼んでるのに待ちが発生とか
なんかやらかしてる
0570デフォルトの名無しさん
垢版 |
2018/02/03(土) 10:21:23.77ID:5+N/4dbU
connectがEINPROGRESSになった後、本当にエラーになってるんじゃないか?
selectに回す前にMSG_PEEKでrecvするといいよ。エラーならrecvのエラーで
取得できる。
0575デフォルトの名無しさん
垢版 |
2018/02/03(土) 12:30:38.79ID:jcEuZ+bz
先ずは自分のコード晒せと思ってそう
0581デフォルトの名無しさん
垢版 |
2018/02/07(水) 05:21:28.74ID:d07AIdFv
>>579
横からだけど>>570ってかなり分かりやすいと思うんだけど
とりあえずクライアント側でメッセージの取りこぼしが無いかどうか見直してみたら
0584デフォルトの名無しさん
垢版 |
2018/02/07(水) 16:00:04.81ID:bLqJ09hb
文盲なのさ
0586デフォルトの名無しさん
垢版 |
2018/02/07(水) 22:28:35.16ID:MTpdY7NJ
"!"!"!MOHYO!"!"!"2"

1.[[[HUn≒MUL=POSI≠MAHO+Set*HUGE=SAGE=LOGE=NOISIA=0≒1]]]

2-[[[[[[[E=RAT%2^10%SPELAn!%]&!TOWA&!PEG#!NOLNOL8!#!HYAGO!2#]1*2=1]U]S]0]O]!#PAL!

3--->PAGODOL7&!@17,2222734.15&[[[%%RENRAK6,9,99"^10"]#$11.2%}]KAIJ]{

41.2SSS = RALQI2.β{{{RA4,0,238^97,1,$.S.L.E.I.L."Q5352.15Q"JOL"5*3>>>41.3q}}}>1.2<0
.3φTALHOSI"0">>>105.10<1.235<1.2>51≠52===55.632>V="E=0.835"of"1.32","632",0.683,1.end

{
0588デフォルトの名無しさん
垢版 |
2018/02/16(金) 06:06:35.28ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0590デフォルトの名無しさん
垢版 |
2018/04/02(月) 21:26:10.59ID:Pnq6v0Lh
諸先輩型、お知恵拝借したく…。
IE11で動かすJavaScriptから、同じPC上のQt5アプリケーションのQlocalServerにメッセージを送りたいのです。
JavaScriptにはどのような実装をすればよいでしょうか?
制限として、Node.jsはインストールできません。それ以外のJavaScriptのライブラリであれば可です。(ただし、HTMLのheadで読み込めるライブラリに限ります。)
0592デフォルトの名無しさん
垢版 |
2018/04/03(火) 20:33:05.00ID:21NZQbQq
>>590
590です。
自己解決しました。
IE11上ではJavaScriptのWebsocketは使用できないと思い込んでいたのですが、使用できることに気付き、解決できました。
※IE9互換を強制していたのが原因でした(汗

大変お騒がせしました。
0593デフォルトの名無しさん
垢版 |
2018/04/04(水) 01:59:20.83ID:h2UR4/YM
意味もなくバージョン強制する糞アプリってあるよね
0595デフォルトの名無しさん
垢版 |
2018/04/14(土) 10:16:22.80ID:xbLOPvem
8バイトしかデータを送らない時に着信するまでに20秒くらいかかるのは
Nagleアルゴリズムのせいだと思ってTCP_NODELAYを設定したのだけど
改善しませんでした。OSはLinux4.15.15です

int flag = 1;
::setsockopt( sd, IPPROTO_TCP, TCP_NODELAY, &flag, (socklen_t)sizeof(flag) );

のような書き方をしているのですがフラグを指定するだけでNagleアルゴリズムを
抑制できるのでしょうか?
0599デフォルトの名無しさん
垢版 |
2018/04/14(土) 15:52:31.59ID:1T8oabCl
タイムアウトしてるな
0601デフォルトの名無しさん
垢版 |
2018/04/14(土) 17:57:24.99ID:3+pJLfBU
>>595
20秒かかるならまずは名前解決を疑ってみろよ
resolv.confを窓から投げ捨てろ
0602デフォルトの名無しさん
垢版 |
2018/04/14(土) 18:05:10.78ID:U01UEKcX
Happy Eyeballs ?
0603595
垢版 |
2018/04/14(土) 19:00:22.12ID:xbLOPvem
>>596
有難う、別の理由っぽいですけどまだ特定できていません

>>598
wiresharkの使い方が分からずまだよく分かっていない状態です
一応通信しようとした時にパケットは出ているような

>>601
特定の部分を通った時に起こる現象のようで、全て20秒かかるわけではないです
プログラム内部でIPとポートも取れていますので名前解決ではなさそうです

特定の部分というのも殆ど何もしていないような感じなのでよくわからない状態です
0605デフォルトの名無しさん
垢版 |
2018/04/15(日) 09:33:58.52ID:jf3zvGbL
selectの使い方がおかしくて、他のイベントひろうまで受信していないように
みえているんじゃないのかな。
0609595
垢版 |
2018/04/15(日) 17:36:20.40ID:hw4ypno6
>>608
自前プログラムを2つ作ってloでつなげています

Libev++を使っているのですが、その使い方が悪いのかも知れません
AとBのプログラムがあるとしてBがAに接続した時にそれぞれのプログラムで
Libev++のコールバックをev:READで仕掛けています
何か通信する時は横から開始する合図をコマンドみたいな形で送っています
お互いに送信するだけなら問題ないのですが、送受信した後短い通信をすると
20秒位反応しなくなるようです
連続して送受信しても症状が出ないし、症状が出ても待っていれば通信は完了するようです

長文失礼しました
0613デフォルトの名無しさん
垢版 |
2018/04/17(火) 13:09:56.95ID:QO/6Yzum
カニンガムの法則を覚えろ
0616デフォルトの名無しさん
垢版 |
2018/04/17(火) 15:43:43.29ID:CCYPJkgd
スレチ
0620デフォルトの名無しさん
垢版 |
2018/04/18(水) 17:54:43.21ID:iZpDQ/7n
質問なんですが、
TCP の TIME_WAIT 状態のポートを回収する待ち時間が120秒の環境(os)で、
10秒毎に curl コマンドなどを動かす

TIME_WAIT 状態のポートが増えていって最終的にはポート番号が枯渇し、
(connectで待たされて)120 秒に1度しかリクエストが実行されない、
という理解はあっていますでしょうか?

それとも足りなくなった段階で古い方から一度に沢山解放される?
0622デフォルトの名無しさん
垢版 |
2018/04/19(木) 06:04:34.14ID:c48O4SX1
いやそれが3秒に2回くらいcurlでファイル取ってくる処理をずっと動かしてても枯渇する様子がなくって
どうなってるのかな、と。

カーネルソース読めとか言われそうだが
0625デフォルトの名無しさん
垢版 |
2018/04/19(木) 10:13:56.30ID:vUDsscfK
Linuxだと枯渇するよ。
net.ipv4.ip_local_port_range
net.ipv4.tcp_tw_recycle
net.ipv4.tcp_fin_timeout
あたりでググって解説読むといいよ。
自力でたどり着けない時点で、貴方にその仕事は向いていないけど。
0626デフォルトの名無しさん
垢版 |
2018/04/20(金) 09:48:58.11ID:WJk0jxxj
BSD最強
0628デフォルトの名無しさん
垢版 |
2018/05/01(火) 09:18:36.69ID:pcuPqOhI
処のところの 5ch が重かったり鯖落ちしたりというのは
5ch 自体の問題やネットワークの問題もあるが
実はアホの山下謹製専ブラ Jane Style 4.00版のせいだと判明した
これのTLS対応に欠陥があり、毎回フルハンドシェイクを行って鯖の負荷を増大させていた
その他にもツッコミどころ満載のクソソフトなので
使っている人を見かけたらすぐにゴミ箱に捨てるように言ってほしい
0629デフォルトの名無しさん
垢版 |
2018/05/01(火) 09:32:23.61ID:ht9dkIpJ
TLSのハンドシェイクを鯖で行っているなら5ch運営が究極の馬鹿ということになるが。
0635デフォルトの名無しさん
垢版 |
2018/05/06(日) 13:46:42.65ID:25QL8AqQ
ちょっと質問させてください
プログラムの勉強を初めて、スタンドアロンのアプリを作っていたんですが、最近ソーシャルな機能を入れてみたいと思い
ネットワークプログラムを勉強しているんですが
C#でクライアントを、PHPでサーバーといった構成で作ってみようと思っています
この場合とりあえずTCP/IPを勉強するって事でいいんですかね?
簡単なechoサーバーとクライアント作成まではできたのですが、ここから複数のクライアントの受付やどういった情報をどういった形式でやりとりしたらいいのかがさっぱりわからなくて立ち止まっています
今考えているのは、JSONでやりとりして、そこからコールバックでサーバー側の処理を行わせていこうかなくらいしか思いついていないです。
0636デフォルトの名無しさん
垢版 |
2018/05/06(日) 14:34:12.00ID:U+XbgTRD
仕掛けはいろいろあるから、画面なりユーザーI/Fを決めると、シーケンスがわかって
んじゃどう作るかが見えると思う。
0637デフォルトの名無しさん
垢版 |
2018/05/06(日) 14:52:44.48ID:v6ma3fie
初心者の質問スレ辺りで聞けよ、QZと言う親切な奴がコーディングしてくれよ。
スレチ
0638デフォルトの名無しさん
垢版 |
2018/05/06(日) 19:25:17.96ID:994JP5I0
ゲームとかパフォーマンスにシビアなことしないんだっら、通常はhttpにjsonなりxmlでデータやり取りすりゃいいんじゃないかな。
0641デフォルトの名無しさん
垢版 |
2018/05/12(土) 10:58:43.12ID:pDgCeBjY
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/
0642デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:37:09.99ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

SMSAW
0644デフォルトの名無しさん
垢版 |
2018/06/23(土) 15:19:53.50ID:eBOr3riY
C#のSocketを使って一度の接続で複数の特定長バイト配列を受信するプログラムを考えています。
接続はTcpListener.AcceptTcpClientAsyncで接続要求を受け取るとして、バイト配列の受信を複数回行うには
PollやSelectメソッドを使って無限ループで受信判定して監視するのが一般的でしょうか?
0645デフォルトの名無しさん
垢版 |
2018/06/23(土) 16:20:48.41ID:FmW0OpQq
GetStreamでストリームを取得して好きにすればいいんじゃないの
TCP自体ストリームだから特定長受信したいと思ったって一度で受信できるかは
わからんよ。ストリームとして正しく固定長受信処理をしたほうがいい。
0646デフォルトの名無しさん
垢版 |
2018/06/23(土) 16:27:49.08ID:EyvIrgyz
送信側が "123456" と1回で send しても
受信側は "12" "3456" と複数回の recv に分断されることだってある
ストリームってそういうもん
0647デフォルトの名無しさん
垢版 |
2018/06/23(土) 16:37:59.82ID:eBOr3riY
ありがとうございます。
NetworkStream.ReadAsyncメソッドあたりを使って受信します。
0648デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:53:14.27ID:gFgZc5FG
6UA
0650デフォルトの名無しさん
垢版 |
2020/05/10(日) 11:30:13.26ID:Fp1kS4OT
教えてください。OSはLinuxです。
ローカルホスト環境ですが、Apacheのドキュメントルートに入れたHTMLファイルを、
ソケットプログラミングから閲覧する方法が分からないです。

inet_addr("127.0.0.1");
ではダメなのでしょうか?
0653デフォルトの名無しさん
垢版 |
2020/05/10(日) 11:51:27.72ID:Fp1kS4OT
struct hostent *host;
っていう構造体が事前に用意されてるという理解でよろしいですか?(まだ未確認)
0654デフォルトの名無しさん
垢版 |
2020/05/10(日) 11:53:20.35ID:Fp1kS4OT
>>652
いちおう、手元のパソコンで一般のWebブラウザ(FirefoxやChrome)を使えば、
自分のパソコンからローカルホストのページや自作htmlを
見に行ける状態には、なっています。
0656デフォルトの名無しさん
垢版 |
2020/05/10(日) 12:19:16.47ID:Fp1kS4OT
gethostname() と gethostbyname() の違いが分からない。

最初「gethostbyname」を使ったんだけど、

警告: implicit declaration of function ‘gethostbyname’; did you mean ‘gethostname’?

って出てしまう。
0657デフォルトの名無しさん
垢版 |
2020/05/10(日) 12:20:30.89ID:y6mlpwhN
libcurl使ったら?サンプルをちょっといじるくらいでできるよ。
とても自力でソケットプログラミングできるようには。。。
0658デフォルトの名無しさん
垢版 |
2020/05/10(日) 12:44:11.05ID:Fp1kS4OT
getaddrinfo ってのを使わないとダメなの?

とりあえず、疑問には答えてほしいと思う。
gethostname() と gethostbyname() に名前以外に違いはあるの?
0660デフォルトの名無しさん
垢版 |
2020/05/10(日) 13:03:41.41ID:zd9TuUMZ
RTFMなんだが,,
gethostname(3)は自分のホスト名を返す
gethostbyname(3)は引数で与えたホストの情報を返す(IPv4)
getaddrinfo(3)はIPv4,v6両方対応.
0661デフォルトの名無しさん
垢版 |
2020/05/10(日) 14:01:26.89ID:Fp1kS4OT
>>660
了解。
gethostbyname と gethostname は違うんですね。
0662デフォルトの名無しさん
垢版 |
2020/05/10(日) 14:17:06.41ID:Fp1kS4OT
>>660
マニュアルを読んでも経緯が分からないから聞いています。

警告: implicit declaration of function ‘gethostbyname’; did you mean ‘gethostname’?

と表示される理由は関数の仕様を見ても書いてないですし。
0663デフォルトの名無しさん
垢版 |
2020/05/10(日) 14:30:47.63ID:3vR9EHIm
それ調べるなら警告を出しているコンパイラのマニュアルの方だろうが、
gethostbynameを宣言してるヘッダをincludeしてないんじゃね?
0664デフォルトの名無しさん
垢版 |
2020/05/10(日) 14:40:00.16ID:y6mlpwhN
man見りゃ書いてあるだろ。
includeがその通りになってないんだよ。
そこにたどり着けない時点でやってることがスキルに対して
背伸びしすぎ。
0666デフォルトの名無しさん
垢版 |
2020/05/10(日) 15:37:13.69ID:zd9TuUMZ
man 3 gethostbyname すると

#include <netdb.h>
ってSYNOPSISの最初にあるでしょ.

このレベルを知らずにCでプログラム書こうと思う時点で,
コアラ大将のTCP/IP入門でも読んで出直しておいで,
とおもってしまう.
0667デフォルトの名無しさん
垢版 |
2020/05/10(日) 15:47:30.50ID:Fp1kS4OT
>>666
それならインクルードしてある。
原因は判明して、単にプログラムにエラーがあっただけっぽい。

コンパイラが気をきかして、 gethostname の警告を出してただけっぽい。

struct hostent *host;
host = gethostbyname("localhost");

printf("正式名: %s\n", host->h_name);
printf("別名 : %s\n", host->h_aliases[0]);

で動くようになった。
ここから先が分からない。

ためしに
host = gethostbyname("localhost/dample.html");
とやってもダメだったし。
0668デフォルトの名無しさん
垢版 |
2020/05/10(日) 15:54:53.96ID:y6mlpwhN
無能すぎてlibcurl使うのすら無理そうだから、
system関数でcurlを呼んで、ファイル入力から読んだほうがいいよ。
1000m走ったことない人がフルマラソンに挑むくらい無謀だよ。
お前の知能と知識レベルでは無理。
0669デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:03:38.74ID:Fp1kS4OT
>>668
どういう開発手法がいいかは聞いていません。
apacheのローカルホストにあるhtmlにソケットプログラミングでアクセスする方法について聞いています。
もし説明が長くなるなら、原理の要点だけでもいいので、質問している事に解答してください。
0671デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:08:57.03ID:wETiDPgZ
IT掲示板群 ttp://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
0672デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:10:15.40ID:Fp1kS4OT
>>670
初心者の質問に解答しないなら、なんで掲示板にいるんですか?

少なくとも、私がいま質問してる事は、市販の書籍には書いてない内容ですよ?
市販の理工書の専門書を読んでも、TCP/IP一般の解説書は売ってても、それをどうソケットプログラミングするかの書籍は、
いまは絶版・休刊ですよね?(2001年頃には売ってましたが、いまは無いです)

それすらも、あらかじめネットのブログを読みあさってから質問しないといけないんですか?
0673デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:16:58.74ID:3vR9EHIm
わからないところ一箇所二箇所質問するくらいならいいけど、この調子だと
目的を達成できるまで何十回質問することになるやら。
0674デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:17:44.27ID:y6mlpwhN
>>672
>それすらも、あらかじめネットのブログを読みあさってから質問しないといけないんですか?

そうだよ。わかってるじゃん。
0675デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:18:27.29ID:Fp1kS4OT
>>672
中古本や電子書籍なら、古い本も購入できるのかもしれませんが、
その場合でもバージョン違いが生じるので、現在のOSにはそのままでは適用できないので、
結局、ネットのマニュアルに頼るか、ネットの掲示板で先人に聞くしかないと思います。
ネットの公式マニュアルでは、全体像や経緯が分かりません。すでにある程度わかっている人が、細かい仕様を確認する場合にしか、使えません。

2001年ぐらいとは状況が違い、いまは出版市場にC言語ソケットプログラミングの書籍はありません(これはアマゾンで以前に調べました)。
0676デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:23:53.37ID:LWJuleKL
>>675
> 2001年ぐらいとは状況が違い、いまは出版市場にC言語ソケットプログラミングの書籍はありません(これはアマゾンで以前に調べました)。

その代わり、ネットにくさるほど情報が転がってる
0677デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:28:11.09ID:y6mlpwhN
2001年くらいから何も変わってないから、
200X年の本を買って読むといいよ。
アマゾンで調べたら複数の書籍が選べるから
好きなのから読めよ。

だいたいあんたの使ってるC言語もC11やC17じゃなくてC99なんだろ?
0678デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:28:22.87ID:Fp1kS4OT
>>673
何十回も質問されて、何が嫌なんですか?
よく分かりません。
「同じことを質問されたら嫌」なら分かりますが?

出版市場にソケットの解説書が無い以上、
掲示板のソケット関連のスレは質問される運命にあると思います。
(それが嫌なら、本を出版してください。)
0679デフォルトの名無しさん
垢版 |
2020/05/10(日) 16:40:33.07ID:3vR9EHIm
べつに質問するのは勝手だよ?答える気が無くなるというだけで。
あとはまぁ、誰にも相手にされなくなったからといって荒らし化するのは勘弁。
0680デフォルトの名無しさん
垢版 |
2020/05/10(日) 18:26:43.05ID:x1rmjJ8k
> (それが嫌なら、本を出版してください。)
こんなこと言い出す奴の相手するなよ…
0682デフォルトの名無しさん
垢版 |
2020/05/10(日) 21:38:11.98ID:7lvCzCJV
エラー処理も知らない度素人なんだら虐めるなよ(爆笑)RFCを調べて見る(大爆笑)
0683デフォルトの名無しさん
垢版 |
2020/05/11(月) 04:32:25.86ID:2l46YMFf
相手するから居着くんだろ
優しくしちゃいかん相手かどうかも見分けられない奴が
中途半端に書くんじゃないよ
0684デフォルトの名無しさん
垢版 |
2020/05/11(月) 18:44:11.23ID:K9UXTRs2
>>667
うーーーん

>ためしに
>host = gethostbyname("localhost/dample.html");
>とやってもダメだったし。

この時点でsocketプログラムの流れとか関数の意味が理解できていないことは
わかるんだけんど、みんなが言うとおり親切に説明してくれているページとか
読んでもう少し基礎知識付けた方が良いと思うよ

たとえば
https://www.geekpage.jp/programming/linux-network/
なんかは割りと親切に書いてあってサンプルも載っているし
あ、LinuxじゃなくてWindowsでVSだとか言われるとまた話がややこしくなるけど
ここにそのものズバリHTTPのクライアントサンプルとかも載っているんで
読んでみたらどうかな
0688デフォルトの名無しさん
垢版 |
2020/05/12(火) 10:21:56.31ID:4WwqN1hQ
最初から触っちゃ逝けない臭いプンプンですし
0692デフォルトの名無しさん
垢版 |
2020/05/21(木) 10:29:55.98ID:of4pwmcJ
相談でもなんでもないけど落とし穴に落ちたんで聞いとくれ(落とし穴というより自損事故)

ローカルサーバ(いや、ローカルでなくても起こるか)で、間違ったURLだったときにリダイレクトしてるんだ
んで、リダイレクト先のURLまちがえた…
それも301でリダイレクトしちゃってた テヘ
0694デフォルトの名無しさん
垢版 |
2020/05/21(木) 12:29:22.69ID:of4pwmcJ
>>693
自分にリダイレクトじゃなく、誤URLに永続的リダイレクトだよ

ブラウザによるかもしれないけど、301が返るとリダイレクト先を記憶
そのアドレスへのアクセスはブラウザ内でリダイレクト先に書き換えられる
結果としてブラウザ側でのリセットが必要
0695デフォルトの名無しさん
垢版 |
2020/05/21(木) 12:40:41.47ID:zX7e3U/4
ああ、chromeだな。
いきなり301を返すようにするのをやめたほうがいいぞ。
307あたりで試してから恒久対処なら301にするといい。
0697デフォルトの名無しさん
垢版 |
2020/05/21(木) 13:02:23.76ID:of4pwmcJ
>>695
すごいな、一発でブラウザ特定されたw
ブラウザの特性って頭に叩き込まれてるのか

あ、じゃ質問
デカイサイズのチャンクでのレスポンスを返した時に、chromeとedgeがコネクションを切断するんで、書き込みがWSAECONNABORTED(10053)でエラーになるんだ
試した中ではfirefoxだけ問題ないんだけど、
レスポンスの実装を失敗していてfirefoxがザルなのかな?
0698デフォルトの名無しさん
垢版 |
2020/05/21(木) 13:07:58.02ID:of4pwmcJ
ちなみにvideoタグからのgetでサイズは21MBほど
動画はどのブラウザでも問題なく再生される
0699デフォルトの名無しさん
垢版 |
2020/05/21(木) 15:57:27.26ID:uQcHcT1e
goスレへお帰りください
0703デフォルトの名無しさん
垢版 |
2020/05/22(金) 09:05:09.82ID:glrqa+sF
>>702
何様も何も、ここって本来は質疑応答スレだから>>1
であるなら、ブラウザの特性に詳しそうな人がいたら、質問を投げるのは普通じゃないかと
フレンドリーな書き方が気に障ったならご免なさい
教えろとか強要しないからセーフだと思ったんだ
0705デフォルトの名無しさん
垢版 |
2020/05/22(金) 15:03:05.97ID:MU4pD2nI
socketと主張するつもりかも知れないがスレチ
httpプロトコルの話ならweb板がふさわしい
0707デフォルトの名無しさん
垢版 |
2020/05/22(金) 17:32:06.06ID:XuNnU0qT
>>697
コネクションを切断することが正しいかという話ならsocketの話じゃないから
ここで聞いてもダメかな

cromeとedgeがコネクションを切断すると「WSAECONNABORTED」になるのが
問題ならば、コネクションを切断しにきているのを知らせるエラーが返ってきて
いるってことなのでエラーハンドラを書きましょうって話かな
0708デフォルトの名無しさん
垢版 |
2020/05/22(金) 18:21:57.91ID:glrqa+sF
>>707
そうなのですか

コネクションを切断してくるのは相手なので、レスポンスのヘッダに何か特定の指定が必要なのかと
送信データが残っているのにブラウザがチャンク受信を打ち切って切断する
というHTTPプロトコル上の問題だと思っていました
で、プロトコルならばネットワークプログラミングの範疇だとばかり

エラーハンドリングは入っているのですが、一々ログに出てしまっていて、対処できるならばしたいという理由でした
0710デフォルトの名無しさん
垢版 |
2020/05/22(金) 21:35:59.96ID:glrqa+sF
ローカル内部だとインターネット層を通さないだろ?
だからネットワークプログラミング的にはローカルと非ローカルのどちらであるのかってのは、問題を考えてもらう上で意味を持った条件だと判断したんだよ
0712デフォルトの名無しさん
垢版 |
2020/05/22(金) 21:40:40.20ID:glrqa+sF
あ、いやここで最初に書いたときはリダイレクトで掘った墓穴ネタだったから無駄な情報だった!
0717デフォルトの名無しさん
垢版 |
2020/05/25(月) 10:23:28.01ID:5tDlblTP
>>710
ローカル通信でも、AF_INETのソケットを使った通信ならば
きちんとソケットからプロトコルスタックに出力されて、
経路を引いた上で、ローカルの場合はループバックに出力し帰ってきて、
自分自身の別のソケットで受信する。
即ち正しくインターネット層の通信が行われる。
0718デフォルトの名無しさん
垢版 |
2020/05/25(月) 11:21:07.85ID:ltgSCU1m
>>717
えっ、知らなかったありがとう
インタフェース層以前でバイパスされるんだと思い込んでた
0720デフォルトの名無しさん
垢版 |
2020/05/25(月) 14:32:47.95ID:xHeORMOB
708
710
718
並べると面白いな
自分でhttpって言いながらバイパスされるとか痴呆疑い有り
0722デフォルトの名無しさん
垢版 |
2020/05/30(土) 11:04:38.38ID:1G1uwH9t
>>708
プロトコルはネットワークじゃないとか原理主義者どもにはすまんが(煽り)

URLを叩いてファイルとしてダウンロードするとエラーにはならずファイルは一致
ということは送信側ではなくchromeとedgeのvideoタグの実装がどこかおかしい
ウィルス対策ソフトが何か悪さしてる可能性はダウンロードが成功することからかなり低い
0724デフォルトの名無しさん
垢版 |
2020/05/30(土) 20:07:32.88ID:fk+arB0Z
三菱電機とかNECはウイルス対策ソフトが悪さをしたので
防衛情報をお漏らししちゃったのにね
0725デフォルトの名無しさん
垢版 |
2020/08/17(月) 12:33:36.54ID:ic3GQTBz
SMTPサーバでメールを送ろうとしています
YahooメールのSMTPサーバのホストはsmtp.mail.yahoo.co.jpですが
MXレコードで調べるとmx1.mail.yahoo.co.jpとなっています
MXレコードからSMTPサーバのホストを調べるにはどうやればいいですか?
0727デフォルトの名無しさん
垢版 |
2020/08/17(月) 12:44:47.55ID:6yBIhPPf
ほんそれ

っていうかいちいちyahooのSMTPにアクセスするな
そのまま自分の所のSMTP鯖使え
自分がyahooと契約してるって話ならyahooの指示に従え
0728デフォルトの名無しさん
垢版 |
2020/08/17(月) 17:28:43.64ID:bkw0hS+S
MXレコードで回答されるホストではSMTP動いていないみたいだよ
昔と違ってSMTPで送りつけるとなんでも転送する仕組みではなくなっているので
メールサーバを構築して運用するならばそこら辺から調べないと出来ないよ
0731デフォルトの名無しさん
垢版 |
2020/12/21(月) 09:06:49.92ID:q+Sqs2B6
OSCで複数のパスに複数のデータを送信するのって、処理負荷重くなりますか?

send("/aaa",111)
send("/bbb",222)
send("/ccc",333)
....

みたいなのを1秒間に3000回とか送信するより
send("/json","[111,222,333.....]")
みたいに一回に分けて送信する方が、送信側の端末での処理負荷は軽い気がするのですがどうなのでしょうか?
0739デフォルトの名無しさん
垢版 |
2021/01/08(金) 20:19:49.24ID:nWfuCqZb
>>736
は?
0740デフォルトの名無しさん
垢版 |
2021/01/08(金) 20:20:34.14ID:nWfuCqZb
>>738
え?
0741デフォルトの名無しさん
垢版 |
2021/01/08(金) 20:22:43.98ID:nWfuCqZb
UDPでも保証されると思っているのか
TCPでも保証されないと思っているのか
そしてどこにwをつける要素があるのか


そしてそして、どこが他人を素人呼ばわり出来るほどのプロフェッショナルなのか
0743デフォルトの名無しさん
垢版 |
2021/01/08(金) 20:26:02.07ID:lTP85lYC
UDPでパケットを投げた順に処理してもらうには
ペイロード中にそれなりの細工が必要なんだけど
その工夫はなされてる前提なの?
0751◆QZaw55cn4c
垢版 |
2021/01/08(金) 21:18:58.87ID:cUApPko3
OSI なんて何の役に立つのですか?
0754デフォルトの名無しさん
垢版 |
2021/01/10(日) 03:17:39.39ID:u+z9sHpH
さすが玄人www
言うことが違うwwwwwww
0756デフォルトの名無しさん
垢版 |
2021/02/05(金) 15:37:55.74ID:Wzlgg/bF
有識者の方、ご教示ください。Win10 64bit/cygwin64(gcc 7.4.0)環境で、C言語によるUDPポートチェックを試みています。UDPソケットでsendto()を要求した後、タイムアウト付きのselect()でICMPソケットのreadfdsを監視しています。目的のUDPポートは閉じているため、Wiresharkでは期待どおり"port unreachable"の受信を確認しています。しかし、readfdsがreadyにならずにselect()ではタイムアウトが生じ、UDPポートは空いていると判断してしまいます。どうもICMP受信をアプリケーションに返却してない(?)ようです。何か情報をお持ちではないでしょうか?以下コードの抜粋。
send = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
recv = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
dst_addr.sin_addr.s_addr = inet_addr("192.168.1.100");
dst_addr.sin_port = htons(12345);
sendto(send, NULL, 0, 0, (struct sockaddr *)(&dst_addr), sizeof(dst_addr));
tv.tv_sec = 1;
tv.tv_usec = 0;
FD_ZERO(&readfds);
FD_SET(recv, &readfds);
if(0 > select(recv+1, &readfds, (fd_set *)NULL, (fd_set *)NULL, &tv))
{
fprintf(stderr, "select() error.??/n");
} else {
if(FD_ISSET(recv, &readfds))
{
recvfrom(recv, buf, MAXBUF, 0, NULL, NULL);
ip = (struct ip *)buf;
ihlen = ip->ip_hl << 2;
icmp = (struct icmp *) ((char *)ip + ihlen);
if ((ip->ip_src.s_addr == dst_addr.sin_addr.s_addr)
&& (icmp->icmp_type == ICMP_UNREACH)
&& (icmp->icmp_code == ICMP_UNREACH_PORT)
{
fprintf(stdout, "NOT open.??/n");
} else {
fprintf(stdout, "Unexpected ICMP response.??/n");
}
} else {
fprintf(stdout, "May be open (due to a timeout).??/n");
}
}
0760デフォルトの名無しさん
垢版 |
2021/02/06(土) 17:21:23.24ID:b91D85Wz
wsl2やらコンテナ全盛の昨今でもsygwinやらmingwやらって需要あったんだなビックリ
0761デフォルトの名無しさん
垢版 |
2021/02/06(土) 19:22:37.50ID:kyUBfZ1R
仕方なくPHPかJavaScriptどっちか勉強しなければいけなくなったんだけど
今からやるならどっちがいい?
0770デフォルトの名無しさん
垢版 |
2021/02/07(日) 18:12:57.29ID:4v/nAOdw
websocketか?
0777デフォルトの名無しさん
垢版 |
2021/02/11(木) 11:54:38.01ID:n0GRjtoR
777
0779デフォルトの名無しさん
垢版 |
2021/02/14(日) 11:17:47.97ID:PGTjJwEI
WindowsのTCP/IP実装に複数の重大な脆弱性、今月のセキュリティパッチはかならず適用を
ブルースクリーンが引き起こされるサービス拒否(DoS)脆弱性はすぐに攻撃が出回る可能性
2021/02/10
https://forest.watch.impress.co.jp/docs/news/1305583.html
0781デフォルトの名無しさん
垢版 |
2021/08/01(日) 03:17:33.43ID:D98l4VUM
誰か居ますか・・・質問なのですが、

winsock2を使ってwebサーバーからファイルを受信する処理があるのですが、
現状では所定時間間隔で新ファイルがあるかどうかポーリングしています

これをロングポーリングに処理を変更して各所の負荷を低減させたいのですが、
そもそもwinsock2・クライアント側のみの修正で実現可能でしょうか?
可能であれば、実現方法のヒントをお願いしたくよろしくお願いします
0782デフォルトの名無しさん
垢版 |
2021/08/01(日) 03:22:32.97ID:D98l4VUM
なお、現状ではhttpレスポンスヘッダーのLast-Modifiedを利用する方法でも
負荷の低減は出来そうですが、でも結局はヘッダ分の通信は頻繁に行われるままですので
上記の質問に至りました

ファイルの有無だけを調べようにもwebサーバーからは即時404が返ってくるだけなので
ロングポーリングが可能なのか疑問ではありますが
0783デフォルトの名無しさん
垢版 |
2021/08/01(日) 06:17:07.91ID:EFU4wEdE
メールのPOP3でも同じようなことやってるし
サーバー側から変更毎にプッシュしてくるようなサービスでない限り
限界はあるんじゃない?
0784デフォルトの名無しさん
垢版 |
2021/08/01(日) 09:52:26.75ID:fFG63Ldv
PUSHあげ
0786デフォルトの名無しさん
垢版 |
2021/08/01(日) 11:22:55.53ID:boMMlR1G
HTTP の GET の代わりに HEAD でもだめって話なら
間隔あけるしかないだろ
クライアント側にソースあるなら書き換えれば済む話だし
無いならクライアント側に近いルーターで定期的に HTTP 遮断してみたら?
0787デフォルトの名無しさん
垢版 |
2021/08/01(日) 13:35:07.40ID:D98l4VUM
人が居た・・・ありがとうございます

>>783-786
この場合、HEADでやってて問題ない感じですかね
今時はWebSocketでPUSHが普通みたいですが、レガシーな環境では改造コストが高すぎて
ロングポーリングにたどり着いた次第です(クライアント側の改造だけで済みそうに思えたので)

本件は特にシビアなレスポンスは必要ではなく数秒くらいラグがあってもいい(10秒を超えるとう〜んですが)
ので、HEADで問題ないようであればこれでいきます

どうもありがとうございました
0789デフォルトの名無しさん
垢版 |
2021/08/01(日) 14:45:00.03ID:D98l4VUM
>>788
仕様と言ってもよくあるレン鯖で apache 2.4.x、nginx 位しか分かりません
鯖側に自前システムを入れることが可能かどうかということですか?
0790デフォルトの名無しさん
垢版 |
2021/08/01(日) 14:57:13.70ID:A8U13CEq
ロングポーリングを、ただポーリングする間隔を伸ばしただけとか思ってそうだな
ロングポーリングするなら必要なのはむしろサーバ側の改修なんだが
0791デフォルトの名無しさん
垢版 |
2021/08/01(日) 15:03:15.72ID:D98l4VUM
>>790
もちろんそのような感覚を持っていたのは確かですが、その辺の具体的なところは全く分かっていない故の質問です
頻繁すぎるポーリングでWEBサーバーに怒られたこともあるので、いい対策はないかというのが本筋ではあります
0792デフォルトの名無しさん
垢版 |
2021/08/01(日) 15:26:34.19ID:A8U13CEq
だから、環境はどうでサーバ側はどこまで変更できるんだと
具体的な話がなにもないなら具体的な回答は無理だぞ
0793デフォルトの名無しさん
垢版 |
2021/08/01(日) 15:54:45.15ID:D98l4VUM
>>792
AWSのようなクラウドサービスではなく、安価な共用レンタルサーバーです
多分サーバー側は何も弄れません

質問の要点は最初の>>781に書いている通り、
>そもそもwinsock2・クライアント側のみの修正で実現可能でしょうか?
と書いていますので、通常ポーリング以外はサーバー側の対応・変更が必須なので
不可能という結論でしょうか?
0796デフォルトの名無しさん
垢版 |
2021/08/01(日) 17:33:08.48ID:D98l4VUM
環境がどうと、何を聞かれてるのか自分にとっては大ざっぱすぎて分からないのですが
そのレンタルサーバーの機能一覧でいいのですか?CPUですか?OSですか?

今自分が動作確認で使っているところはこれですが、どこのレンタルサーバーを使うのか、どのプランを使うのか
それはユーザー次第の話です
https://www.xserver.ne.jp/functions/

サーバーに何が必要だと書いてもらえると話は早いと思うのですが
0798デフォルトの名無しさん
垢版 |
2021/08/01(日) 17:55:51.78ID:D98l4VUM
無理なのは分かりましたが、そちらが環境を聞いているのでしたら逆に必要な環境があるのでしょうから書けるでしょ?
書けないのですか?知らないのですか?
0801デフォルトの名無しさん
垢版 |
2021/08/01(日) 18:11:02.20ID:fFG63Ldv
COMETならこうSSEならこうWebSocketならこう〜みたいな話になるかと思ったら環境マウンターしか居なくて草
0803デフォルトの名無しさん
垢版 |
2021/08/01(日) 23:01:22.16ID:fFG63Ldv
回答最初から出て解決してるんだから終わっときゃいいんだよ
何の有効ワードも書いてない中身スカスカのお前のスレ汚しは賛同できん
0806デフォルトの名無しさん
垢版 |
2021/08/02(月) 10:41:22.55ID:TsHNxssu
適切なアドバイスが出来るんなら必要環境がある前提で○○しろって一行書くだけなのに
俺の分かるように環境書けってやりとりだけを延々と続けるのはただの寂しがり屋か暇人やな
0807デフォルトの名無しさん
垢版 |
2021/08/02(月) 11:02:15.07ID:qQu9KDi8
勘違いしとった、ファイルサーバね、よくわからんがwebサーバを使うならhttpプロトコルなので
ソケット関係なし、よってスレチ
0810デフォルトの名無しさん
垢版 |
2021/08/02(月) 11:40:59.70ID:TsHNxssu
ファイルサーバーをポーリングで監視してる話として延々と環境聞いてたのか?
色々ヤバすぎるやろ
■ このスレッドは過去ログ倉庫に格納されています