package main
import (
"bufio"
"fmt"
"net"
"sync"
)
var wg sync.WaitGroup
var count = 0
var timeX string = ""
var connQueue = make(chan string)
func main() {
tcpListner := startTCPConnection()
incomingTCPListener(tcpListner)
wg.Wait()
}
//startTCPConnection
func startTCPConnection() net.Listener {
tcpListner, tcpConnectonError := net.Listen("tcp", "localhost:3000")
if tcpConnectonError != nil {
print(tcpConnectonError)
// return
log.Fatal(tcpConnectonError)
}
return tcpListner
}
//incomingTCPListener
func incomingTCPListener(tcpListner net.Listener) {
for {
incomingConnection, incomingConnectionError := tcpListner.Accept()
if incomingConnectionError != nil {
print(incomingConnectionError)
return
}
wg.Add(1)
go processIncomingRequest(incomingConnection)
// wg.Wait()
}
}
//processIncomingRequest
func processIncomingRequest(connection net.Conn) {
defer connection.Close()
var scanner = bufio.NewScanner(connection)
var blob = ""
for scanner.Scan() {
fmt.Println("sadd")
text := scanner.Text()
blob += text
}
print(blob)
count++
fmt.Println("totalCount", count)
wg.Done()
}
Проблема в server.go. Я предполагаю, что вы исчерпали порты, вызвав wg.Wait () внутри входящей функции TCPListener () вместо main (). Также пустое возвращение в функции startTCPConnection () приведет к ошибке компиляции.
Я не совсем уверен, что вы спрашиваете. Вы хотите убедиться, что по крайней мере 1 элемент выбран перед выполнением действия? Если это так, то должно работать следующее
if ( listView.SelectedItems.Count > 0 ) {
// Do something
}
Или вам интересно, выбран ли конкретный элемент? Если это так, попробуйте следующее
if ( listView.SelectedItems.Contains(someItem)) {
// Do something
}
if( listView.SelectedItems.Count > 0 ){
// do stuff here
}